我已经在网上查找有关此问题的解决方案,但是似乎都没有解决我的具体情况。
我有一个pycharm项目,其中包含多个目录,子目录和文件。当我从命令行调用主入口点方法时,我得到 跨约20个文件的所有导入上的ModuleNotFoundError。我在网上找到的解决方案建议修改PYTHONPATH。对于我的用例来说,这不是可行的解决方案,因为
我有什么选择?
编辑:
项目结构:
Project-
|
|
mod-
|
|
data-
|
|
ClassA.py
ClassB.py
|
config-
|
|
ClassC.py
ClassD.py
...
main.py
导入语句如下:
from mod.data.ClassA import ClassA
错误:
ModuleNotFoundError: No module named 'ClassA'
我的python文件中的每个import语句都会显示此错误。
当我添加sys.path.append时,它可以工作,但是我必须为每个import语句执行此操作,并且它是一个硬编码的abs路径,任何有zip的人都需要更新。
答案 0 :(得分:0)
如您所显示的,如果您的模块与可执行文件包含在同一目录中,则很简单:
文件结构:
f1.py
m1
__init__.py
C1.py
C1.py
class C1:
def test(self):
print("Hi!")
f1.py
#!/usr/bin/env python
from m1.C1 import C1
C1().test()
执行:
> python f1.py
Hi!
您的模块目录中确实有__init__.py文件,对吗?如果没有,那可能就是您遇到麻烦的原因。