我正在处理某些python项目(2.7),但是导入有问题。当我运行main.py时,它从tests文件夹等启动脚本,然后将输出保存到日志中,一切正常。
/root------------
-logs
-staticCfg
-config.py
-tests
-systemTest
-scrypt1.py
-scrypt2.py
-userTest
-uScrypt1.py
main.py
我的静态变量(电子邮件,姓名等)位于config.py
中。我需要在config.py
或scrypt1.py
中导入scrypt2.py
。我尝试将__init__.py
添加到测试,systemTest和staticCfg文件夹中,但总是收到错误消息。
在我的scrypt1.py
中:
import staticCfg as cfg
...
或
from staticCfg import *
...
我得到了错误:
ImportError: No module named staticCfg
答案 0 :(得分:0)
Python的导入机制可能有些棘手。
有关更多信息,请参考文档:Python Import Mechanism
当您像使用绝对导入一样(导入不以.
开头)时,导入路径将从主脚本(您启动的脚本)开始。您的情况是scrypt1.py
。因此,从该位置开始,python找不到软件包staticCfg
。
对我来说,最简单的解决方案是在根目录中创建一个主脚本,然后从那里调用scrypt1.py
(使用from tests.systemTet import scrypt1.py
导入)。在这种情况下,基本软件包将是您的root
文件夹,并且您可以根据需要从所有脚本文件访问软件包staticCfg
。
答案 1 :(得分:-1)
您可以将根文件夹添加到PYTHONPATH。