【发布时间】:2020-07-02 14:45:14
【问题描述】:
我在跨不同目录访问 python 模块时遇到了一些问题..
我的当前目录如下所示:
__main__.py
__test__.py
tests
some_tests.py
_init__.py
modules
main_modules.py
__init__.py
在 some_tests.py 中,我将从 /modules 调用一些方法,test.py 在 /tests 中执行我的测试模块
我在 some_tests.py 中使用以下内容来引用 /modules 中的模块
sys.path.append(r'../modules/')
from main_modules import xfunc, yfunc
如果我只是单独运行 some_tests.py,这可以正常工作。但是,一旦我使用 test.py 调用 some_tests.py ,我就会返回 ImportError ,当此脚本调用 some_tests.py 时无法找到 /modules 中的模块
我尝试将模块直接导入到 test.py 中,但这也不起作用。我在这里做错了什么?
编辑
在 some_tests.py 我做了类似的事情
sys.path.append(r'../modules/')
from main_modules import modulea, moduleb
def func():
x = modulea.xfunc()
return x
但这是我在运行时得到的..
File "__test__.py", line 14, in <module>
from tests import some_test.py
File "C:\...\__init__.py", line 2, in <module>
from .some_test.py import (func,
File "C:\...\some_test.py", line 7, in <module>
from modules import modulea, moduleb
ModuleNotFoundError: No module named modulea
根据我在运行时收集的信息,当我运行 test.py 并严格导入该函数时,无法导入该函数,因为它不再运行 sys.path.append ,因此不知道在哪里看。即使我将模块显式导入 test.py
,情况仍然如此【问题讨论】:
标签: python python-3.x directory subdirectory