我已经在网上找到了这个问题的解决方案,但似乎没有一个能解决我的具体情况。
我有一个pycharm项目,有多个目录、子目录和文件。当我从命令行调用主入口点方法时,
modulenotfounderror,用于跨~20个文件的所有导入。我在网上找到的解决方案建议修改pythonpath。对于我的用例来说,这不是一个可行的解决方案,因为
-
我必须在所有文件中添加sys.path.append调用。这是唯一可行的方法。
-
我不能使用任何第三方libs。
-
我将以zip文件的形式共享该项目。注意:我不能使用github来共享项目,也不打算创建可分发的。因此,当其他人在PC上解压项目时,他们应该能够从命令行运行它,而不会出现任何问题。他们不必修改env变量来运行它。
我有什么选择?
编辑:
项目结构:
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的人都需要更新它。