Python "ImportError: No module named...", but the module exists
Python "ImportError: No module named...", but the module exists
我的文件目录树是这样的:
my_repo
├── experiments
│ ├── foo.py
│ └── __init__.py
└── tests
├── baz.py
└── __init__.py
里面baz.py
,我试试
from experiments.foo import FooExperiment
但我得到
*** ImportError: No module named experiments.foo
当我从终端打开 python (Mac OSX 10.9) 和 运行
from experiments.foo import FooExperiment
class 已正确导入。到底是怎么回事?请帮忙。
在这两种情况下,sys.path
完全相同,除了当我在 baz.py
中时,包括当前路径(到 baz.py
)。是的 /path/to/my_repo
也在我的 sys.path
中。
编辑:我的问题是 egg 文件冲突,所以重新安装成功了(如下)。接受@Austin Marshall 的回答,因为它是解决此问题一般情况的可行解决方案。
pip uninstall my_repo
python setup.py develop --user
我通常使用以下内容将路径附加到 sys.path:
sys.path.append(os.path.join(os.path.dirname(__file__), "../myfolder"))
与
Import sys, os
experiments
不在 PYTHONPATH
中,也未使用标准安装工具技术 安装。我能够复制您的问题,通过将 my_repo
放入 PYTHONPATH
:
即可解决
Austins-MacBook-Pro-2:my_repo amarshall$ tree .
.
├── experiments
│ ├── __init__.py
│ └── foo.py
└── tests
├── __init__.py
└── baz.py
2 directories, 4 files
Austins-MacBook-Pro-2:my_repo amarshall$ PATH=$PATH:`pwd`/experiments python tests/baz.py
Traceback (most recent call last):
File "tests/baz.py", line 1, in <module>
from experiments.foo import FooExperiment
ImportError: No module named experiments.foo
Austins-MacBook-Pro-2:my_repo amarshall$ PYTHONPATH=$PYTHONPATH:`pwd` python tests/baz.py
当指定 PYTHONPATH
而不是 PATH
时,最后一行没有输出或错误
我的文件目录树是这样的:
my_repo
├── experiments
│ ├── foo.py
│ └── __init__.py
└── tests
├── baz.py
└── __init__.py
里面baz.py
,我试试
from experiments.foo import FooExperiment
但我得到
*** ImportError: No module named experiments.foo
当我从终端打开 python (Mac OSX 10.9) 和 运行
from experiments.foo import FooExperiment
class 已正确导入。到底是怎么回事?请帮忙。
在这两种情况下,sys.path
完全相同,除了当我在 baz.py
中时,包括当前路径(到 baz.py
)。是的 /path/to/my_repo
也在我的 sys.path
中。
编辑:我的问题是 egg 文件冲突,所以重新安装成功了(如下)。接受@Austin Marshall 的回答,因为它是解决此问题一般情况的可行解决方案。
pip uninstall my_repo
python setup.py develop --user
我通常使用以下内容将路径附加到 sys.path:
sys.path.append(os.path.join(os.path.dirname(__file__), "../myfolder"))
与
Import sys, os
experiments
不在 PYTHONPATH
中,也未使用标准安装工具技术 安装。我能够复制您的问题,通过将 my_repo
放入 PYTHONPATH
:
Austins-MacBook-Pro-2:my_repo amarshall$ tree .
.
├── experiments
│ ├── __init__.py
│ └── foo.py
└── tests
├── __init__.py
└── baz.py
2 directories, 4 files
Austins-MacBook-Pro-2:my_repo amarshall$ PATH=$PATH:`pwd`/experiments python tests/baz.py
Traceback (most recent call last):
File "tests/baz.py", line 1, in <module>
from experiments.foo import FooExperiment
ImportError: No module named experiments.foo
Austins-MacBook-Pro-2:my_repo amarshall$ PYTHONPATH=$PYTHONPATH:`pwd` python tests/baz.py
当指定 PYTHONPATH
而不是 PATH