【发布时间】:2016-06-26 13:22:06
【问题描述】:
我有以下文件夹结构:
controller/
__init__.py
reactive/
__init__.py
control.py
pos/
__init__.py
devices/
__init__.py
cash/
__init__.py
server/
__init__.py
my_server.py
dispatcher/
__init__.py
dispatcherctrl.py
我需要在my_server.py 中导入模块control.py,但它显示ImportError: No module named controller.reactive.control,尽管我在所有文件夹中添加了__init__.py,在my_server.py 中添加了sys.path.append('/home/other/folder/controller/reactive')。
主文件在my_server.py。
我不明白为什么,因为dispatcherctrl.py 执行相同的导入并且它工作正常。
【问题讨论】:
-
你的模块树中的
orkit在哪里? -
用正确的名字编辑了名字。
-
试试
sys.path.append('/home/other/folder/')。 -
您应该导入
reactive并在__init__.py文件中定义control。您可以执行sys.path.insert(0, '/path/to/controller/,然后执行import reactive并通过reactive.control()进行呼叫控制。 -
@LutzHorn
sys.path.insert(0, ...)而不是通过PATH中的早期存在来避免覆盖所需功能的其他东西。免责声明这可能会破坏内置:)
标签: python