为什么我的python没有将当前工作目录添加到路径中?

tri*_*nth 37 python python-import

我一直看到网站提到你执行'python'的目录被添加到python路径.例如在http://www.stereoplex.com/blog/understanding-imports-and-pythonpath上,作者cd到/ tmp文件夹然后执行'print(sys.path)'并且看看/ tmp文件夹出现在路径列表中.这是我在我的系统上尝试这个(安装2.6.6):

示例结构:

app/
  mymodule.py
  inner_folder/
    myscript.py
Run Code Online (Sandbox Code Playgroud)

在myscript.py中包含以下行:

import 'mymodule.py'
Run Code Online (Sandbox Code Playgroud)

我做了什么:

cd app
python inner_folder/myscript.py # ImportError
Run Code Online (Sandbox Code Playgroud)

由于我从app /目录执行解释器,不应该将'app'放到python路径上吗?这就是我读过的很多文档都指明了行为应该如何.

请指教!

(我暂时通过手动将我想要的文件夹添加到环境中但不想永远依赖它来解决这个问题.因为许多网站都说可以这样做,我想为自己重现它)

Ign*_*ams 64

它是添加的脚本目录,而不是当前目录.如果你inner_folder/变成一个包,那么你可以使用python -m inner_folder.myscript,以便在app/添加时运行脚本sys.path.

  • @CypressFrankenfeld:在3.4之前的python版本中,一个空的PYTHONPATH导致'.' 被添加到sys.path.请参阅https://docs.python.org/3/whatsnew/3.4.html#changes-in-python-command-behavior (7认同)
  • 谢谢你的澄清.我知道脚本的目录已添加,但我认为添加"当前目录"的唯一原因是因为它曾经工作过.我发誓!必须发生一些让它停止工作的事情.我不记得以任何方式修改PYTHONPATH,所以这就是我问这个问题的原因. (3认同)