Why does my python not add current working directo

2019-01-22 11:54发布

I keep seeing sites mentioning that the directory that you execute 'python ' get added to the python path. For example on http://www.stereoplex.com/blog/understanding-imports-and-pythonpath, the author cd's to the /tmp folder then does 'print(sys.path)' and lo and behold, the /tmp folder appears in the path list. Here is me trying this out on my system (with 2.6.6 installed):

example structure:

app/
  mymodule.py
  inner_folder/
    myscript.py

in myscript.py contains the line:

import 'mymodule.py'

what i did:

cd app
python inner_folder/myscript.py # ImportError

Since I am executing the interpreter from the app/ directory, shouldn't 'app' be put onto the python path? This is how a lot of the docs I have been reading have specified the behaviour should be.

Please enlighten!

(I have temporarily solved this by manually adding the folder I want into the environment but don't want to rely on that forever. Since many sites say this can be done, I'd like to reproduce it for myself)

2条回答
smile是对你的礼貌
2楼-- · 2019-01-22 12:13

Whether or not the current directory is in sys.path, import statements usually look like:

import mymodule

The code you wrote looks like:

import 'mymodule.py'
查看更多
劫难
3楼-- · 2019-01-22 12:31

It is the script's directory that is added, not the current directory. If you turn inner_folder/ into a package then you can use python -m inner_folder.myscript in order to run the script while having app/ added to sys.path.

查看更多
登录 后发表回答