我使用 virtualenv 创建了一个 Foo 项目,但在 test_file.py 中导入 File 模块时遇到一些问题
这是我的项目目录
Foo/
├── app
│ ├── __init__.py
│ ├── testfile.py
│ ├── tests
│ │ ├── __init__.py
│ │ └── test_gram.py
│ ├── util
│ │ ├── File.py
│ │ ├── Gram.py
│ │ ├── __init__.py
└── NOTES
test_gram.py:
from app.util.File import loadDataFromPickle
listofdict = loadDataFromPickle(".....")
i = 0
for item in listofdict[:50]:
print(item)
如果我运行 test_gram,我会收到一个 ImportError:
Traceback (most recent call last):
File "test_gram.py", line 1, in <module>
from app.util.File import loadDataFromPickle
ImportError: No module named 'app
我做错了什么?我是否需要将 virtualenv-path 更改为 Foo/app 而不是 Foo?
最佳答案
如果 test_gram.py 在测试文件夹中,那么导入行应该是:
from ..util.File import loadDataFromPickle$
另一种选择是使用 imp
模块,通常建议使用该模块,而不是附加 sys.path( source here ,包括 Python 3 版本)
import imp
foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()
关于python - 导入父目录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806092/