我将如何组织我的 python 导入,以便我可以拥有这样的目录。
project
| \
| __init__.py
|
src
| \
| __init__.py
| classes.py
|
test
\
__init__.py
tests.py
然后在 /project/test/tests.py 中能够导入classes.py
我在tests.py 中有类似这样的代码
from .. src.classes import(
scheduler
db
)
我收到以下错误
SystemError: Parent module '' not loaded, cannot perform relative import
有人知道该怎么办吗?
Python 将包含您启动的脚本的文件夹添加到 PYTHONPATH,因此如果您运行
python test/tests.py
仅文件夹test
添加到路径(而不是您正在其中执行命令的基本目录)。
相反,像这样运行测试:
python -m test.tests
这会将基本目录添加到 python 路径,然后可以通过非相对导入访问类:
from src.classes import etc
如果你确实想使用相对导入风格,那么你的3个目录需要添加到包目录中
package
* __init__.py
* project
* src
* test
然后您从包目录上方执行它
python -m package.test.tests
也可以看看:
- https://docs.python.org/2/using/cmdline.html https://docs.python.org/2/using/cmdline.html
- http://www.stereoplex.com/blog/understanding-imports-and-pythonpath http://www.stereoplex.com/blog/understanding-imports-and-pythonpath
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)