我知道有很多关于这个的问题,但是我的问题非常具体,我不知道为什么导入不起作用。 我有以下文件夹结构:
importmodule
-classes
-pluginhelper
-- __init__.py
-plugins
-- plugin_a
-- plugin b
-- ..
-__init__.py
-<other py files>
在我的插件文件中,我导入的插件帮助程序如下:
from importmodule.pluginhelper import function1, function2, ...
函数是在uuuu\init.py中定义的
在我的windows机器上执行插件文件非常有效。在服务器上执行此操作时,会出现以下异常:
ImportError: No module named 'importmodule'
奇怪的是,我确实从每个插件中得到了错误,但只有一个。在其中一个插件中,import可以工作,而import语句中没有区别。你知道吗
我在这两台机器上都使用python3.5,而在服务器上,我的应用程序在docker容器中。你知道吗
编辑: 设置系统路径也不起作用:
print("Indexed Path for Package.")
sys.path.index(os.getcwd())
我发现了可能的问题: dockercontainer中的文件夹结构似乎有所不同。我会修复它并告诉你它是否有用。但我仍然不明白为什么它与使用相同语句的一个插件一起工作。你知道吗
我想和大家分享我的解决方案,因为任何读到这个问题的人似乎都有类似的问题。你知道吗
出现此问题的原因是pythonpath/syspath中未包含该包。我用一个名为执行.py. 这是通过命令从主.py因为我不能多重处理我的类。由于插件位于../plugins中,python只包含这个路径。不是/importmodule路径。不知何故,它似乎已经包括在windows上,我真的不知道那里发生了什么tbh。你知道吗
我做的是,我把
sys.path.append
的东西放在我的执行.py它执行如下插件:from pluginhelper import scrapeHostnames, hostnamesToIps, getSource
。我的IDE现在将import语句标记为红色,但它正在工作,因为我正在附加包。你知道吗相关问题 更多 >
编程相关推荐