Python: OSError: [Errno 2] No such file or directory: ''

python, python-2.7, python-module

Solution

Have you noticed that you don't get the error if you run

python ./script.py

instead of

python script.py

This is because `sys.argv[0]` will read `./script.py` in the former case, which gives `os.path.dirname` something to work with. When you don't specify a path, `sys.argv[0]` reads simply `script.py`, and `os.path.dirname` cannot determine a path.

Problem

I have a 100 lines, 3 years old python scraper that now bug. Starting lines are: ``` import urllib, re, os, sys, time # line 1: import modules os.chdir(os.path.dirname(sys.argv[0])) # line 2: all works in script's folder > relative address # (rest of my script here!) ``` When run, ``` $cd /my/folder/ $python script.py ``` I receive the error: ``` python script.py Traceback (most recent call last): File "script.py", line 2, in <module> os.chdir(os.path.dirname(sys.argv[0])) OSError: [Errno 2] No such file or directory: '' ``` How should I read this error and what to do ?

Original source