我希望有人能对我今天遇到的一个非常奇怪的情况有所帮助。我完成了一个在PyCharm中运行良好的项目;但是,当尝试从命令行调用该项目时,我收到了以下错误:
[root@vodgsnxf-po-a2p ~]# python /opt/gsnworkflow/GSNEventLoop/EventLoop.py
Traceback (most recent call last):
File "/opt/gsnworkflow/GSNEventLoop/EventLoop.py", line 6, in <module>
from Modules import FileOperations
ImportError: No module named Modules
这是我的文件布局:
/opt/gsnworkflow/
|-- __init__.py
|-- GSNEventLoop/
| |-- __init__.py
| `-- EventLoop.py
`-- Modules/
|-- __init__.py
|-- Configuration.py
|-- Logging.py
|-- FileOperations.py
`-- Database.py
我尝试了一系列不同的sys.path.append
命令,例如:
sys.path.append('/opt/gsnworkflow/')
sys.path.append('/opt/gsnworkflow/Modules/')
sys.path.append('/opt/gsnworkflow/GSNEventLoop/')
所有这些选择都没有解决我的问题,我的智慧也快到了尽头。有没有人看到任何明显的东西,我可能错过或做得不正确?我真的很感激任何能弄明白这一点的人。谢谢!你知道吗
我想出来了。我的主函数存在于GSNEventLoop目录中。我把它移到Python包的根目录下。所有导入都按预期工作。现在,我的结构是这样的:
一旦我建立了GSNMain.py文件所有导入和功能都按预期工作。感谢那些早早伸出援助之手的人们。我爱你。你知道吗
您要做的是从GSNEventLoop调用模块。 你需要进入module向上然后调用Modules。你知道吗
在Python3中是这样做的:
Further reading并查找包内引用
关于在python2中是如何实现的,请参见THIS
相关问题 更多 >
编程相关推荐