Bol*_*ain 5 python path importerror
我的文件目录树如下所示:
\n\nmy_repo\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 experiments\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 foo.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 baz.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\nRun Code Online (Sandbox Code Playgroud)\n\n在里面baz.py,我尝试
from experiments.foo import FooExperiment\nRun Code Online (Sandbox Code Playgroud)\n\n但我得到
\n\n*** ImportError: No module named experiments.foo\nRun Code Online (Sandbox Code Playgroud)\n\n当我从终端 (Mac OSX 10.9) 打开 python 并运行
\n\nfrom experiments.foo import FooExperiment\nRun Code Online (Sandbox Code Playgroud)\n\n该类已正确导入。到底是怎么回事?请帮忙。
\n\n在这两种情况下,情况sys.path完全相同,除非我位于baz.py当前路径 (to baz.py) 中。是的,/path/to/my_repo在我的sys.path也是如此。
编辑:我的问题是鸡蛋文件冲突,所以重新安装就可以了(如下)。接受@Austin Marshall 的答案,因为它是解决这个问题的一般情况的可行解决方案。
\n\npip uninstall my_repo\npython setup.py develop --user\nRun Code Online (Sandbox Code Playgroud)\n
experiments不在 中PYTHONPATH,也不是使用标准 setuptools 技术安装的。我可以复制您的问题,通过输入以下内容可以解决该my_repo问题PYTHONPATH:
Austins-MacBook-Pro-2:my_repo amarshall$ tree .\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 experiments\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 foo.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 baz.py\n\n2 directories, 4 files\nAustins-MacBook-Pro-2:my_repo amarshall$ PATH=$PATH:`pwd`/experiments python tests/baz.py \nTraceback (most recent call last):\n File "tests/baz.py", line 1, in <module>\n from experiments.foo import FooExperiment\nImportError: No module named experiments.foo\nAustins-MacBook-Pro-2:my_repo amarshall$ PYTHONPATH=$PYTHONPATH:`pwd` python tests/baz.py \nRun Code Online (Sandbox Code Playgroud)\n\nPYTHONPATH当指定时没有输出,或者最后一行有错误,而不是PATH