我希望有人可以对我今天遇到的一个非常奇怪的情况有所了解。我有一个完成的项目,在PyCharm中运行良好;但是,当尝试从命令行调用项目时,这是我收到的错误:
return $.getJSON('http://localhost/backoffice/?action=unassignedClients.getUnassingedClients')
.then((data) => {
this.setState({resultMe: data.results});
});
这是我的文件布局:
[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
这些选项都没有完全解决我的问题而且我的智慧结束了。有没有人看到任何明显可能错过或做错的事情?我非常感谢能够解决这个问题的人。谢谢!
答案 0 :(得分:1)
您要做的是从GSNEventLoop调用模块模块。 您需要将模块向上,然后调用模块。
这是在python 3中完成的:
from ..Modules import FilesOperations
Further reading并查找包内引用
关于如何在python 2中完成,请参阅THIS
答案 1 :(得分:0)
我想出来了。我的主要功能存在于GSNEventLoop目录中。我把它移出了Python包的根,然后瞧。所有导入按预期工作。所以现在,我的结构看起来像这样:
一旦我建立了GSNMain.py文件,所有导入和功能都按预期工作。感谢那些提早到达并迅速尝试为此提供支持的人。我喜欢StackOverflow。