【发布时间】:2019-07-03 01:01:37
【问题描述】:
我在 macOS Mojave 版本 10.14.1 上使用 Python 3.7.1
这是我的目录结构:
man/
Mans/
man1.py
MansTest/
SoftLib/
Soft/
SoftWork/
manModules.py
Unittests/
man1test.py
man1.py 包含以下 import 语句,我不想更改:
from Soft.SoftWork.manModules import *
man1test.py 包含以下 import 语句:
from ...MansTest.SoftLib import Soft
from ...Mans import man1
我需要man1test.py 中的第二个import,因为man1test.py 需要访问man1.py 中的函数。
我在第一次导入 (Soft) 背后的基本原理是为了方便前面提到的 man1.py 中的 import 语句。
然而,与我的预期相反,man1.py 中的 import 语句导致:
ModuleNotFoundError: No module named 'Soft'
当我跑步时
python3 -m man.MansTest.Unittests.man1test
从上面的目录man/。
有没有什么方法可以解决这个错误而不改变man1.py中的import语句和而不向sys.path添加任何东西?
编辑:python3 -m man.ManTest.Unittests.man1test从问题的原始版本改为python3 -m man.MansTest.Unittests.man1test
【问题讨论】:
-
您可以破解
__path__的导入模块。不是sys.path,但你可以吗?
标签: python python-3.x python-import