可能有2个错误来源。第一个,就像@TomCho已经指出的那样,如果__init__.py
文件在您的模块中不正确。然而,由于它在PyCharm中工作,我猜这是第二个。
第二个是如果您的PYTHONPATH
变量设置不正确。有很多地方python默认会查找模块。这包括Python安装目录和当前工作目录等地方。要查看的地方的完整列表的Python看起来,做..然后
import sys
print(sys.path)
Python会降临到每个具有__init__.py
文件目录,这是什么使这个文件很重要。然而,很可能你没有把你的代码放到Python看起来的默认位置。这就是PYTHONPATH
环境变量的全部目的。你可以将它作为你的软件包的路径列表,然后这些将会被添加到上面看到的sys.path
。
默认情况下,PyCharm
会将您的项目目录添加到PYTHONPATH
,这就是为什么我猜测它在PyCharm中工作,而不是在命令行上。
设置PYTHONPATH
在Linux中,进入命令行,键入
export PYTHONPATH=/path/to/python/module
如果你有一个以上的路径,你需要添加,可以随时追加与:
所以更普遍的情况是
export PYTHONPATH=$PYTHONPATH:/path/to/python/module
你可以继续这样做。我通常将该行添加到我的~/.bashrc
文件中。
如果你在windows中,modifying environment variables是不同的,但它仍然很容易。
这个在Pycharm中工作的原因是因为它在幕后制作了一些可以确保Python能够找到'Module_a'的魔法。如果你想从终端运行,你可能会不得不捣乱'sys.insert()'。 –
你的文件列表,问题文本,python代码和与大小写相关的python错误有很多不一致之处。 Python区分大小写。确保所有这些'Module_A'和'Module_a','serviceFile'和'ServiceFile'对在任何地方都是一样的。 –
'MyApp'和'Module_B'是否缺少'__init __。py'? –