Python:将scrypt从子文件夹导入到另一个子文件夹

Python:将scrypt从子文件夹导入到另一个子文件夹,python,python-2.7,python-import,python-module,Python,Python 2.7,Python Import,Python Module,我正在做一些python项目(2.7),我对导入有问题。当我运行main.py时,它会从tests文件夹等启动脚本,并将输出保存到日志中,一切正常 /root------------ -logs -staticCfg -config.py -tests -systemTest -scrypt1.py -scrypt2.py -u

我正在做一些python项目(2.7),我对导入有问题。当我运行main.py时,它会从tests文件夹等启动脚本,并将输出保存到日志中,一切正常

/root------------
        -logs
        -staticCfg
           -config.py
        -tests
           -systemTest
              -scrypt1.py
              -scrypt2.py
           -userTest
              -uScrypt1.py

main.py
我的静态变量(电子邮件、名称等)位于
config.py
中。我需要在
scrypt1.py
scrypt2.py
中导入
config.py
。我尝试将
\uuuu init\uuuuu.py
添加到tests、systemTest和staticCfg文件夹中,但总是出现错误

在my
scrypt1.py
中:

import staticCfg as cfg
...

我得到一个错误:


导入错误:没有名为staticCfg的模块

Python的导入机制可能有点棘手

有关更多信息,请参阅文档:

当您使用绝对导入(您的导入不会以
开头)时,导入路径将从主脚本(您启动的主脚本)开始。在您的例子中,它是
scrypt1.py
。因此,从这个位置开始,python无法找到包
staticCfg


对我来说,最简单的解决方案是在根目录中创建一个主脚本,然后从那里调用
scrypt1.py
(使用tests.systemTet import scrypt1.py中的
导入)。在这种情况下,基本包将是您的
根文件夹,您可以根据需要从所有脚本文件访问包
staticCfg

您可以将根文件夹添加到PYTHONPATH。

如何运行测试以及从何处运行测试?您在终端中键入的命令是什么?运行它时,您相对于root的位置是什么?我假设您在
测试中运行它
?我在main.py中传递了一些参数(python main.py-userTests)Pr.My.Py正在执行子过程。Popen根据您EntEdEnter的参数来运行测试来解决问题,但我认为这是一个糟糕的选择,因为它使代码更难阅读和理解。
from staticCfg import *
...