我是 python 新手,不知道如何以正确的方式组织项目结构,所以所有自动导入都可以在 pycharm 中工作。
这就是我目前的结构。
在 PublisherSubscriberTest pycharm 中生成了这个导入
from Rabbit.RabbitReceiver import RabbitReceiver
from Rabbit.RabbitSender import RabbitSender
但它不起作用。这就是输出。
ImportError: No module named Rabbit.RabbitReceiver
我做错了什么?
我对java比较熟悉。例如,在 Java 中,我只需创建包含一些类的包,然后我就可以将它们导入到我的项目中的任何位置。 AFAIK不知何故与python不同。
有人可以向我解释一下吗?
编辑1:
是的,我知道 sys.path.append。我曾经这样做过,但对我来说似乎很奇怪,我希望没有它也能做到。
最佳答案
import sys, os.path
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
from Rabbit.RabbitReceiver import RabbitReceiver
from Rabbit.RabbitSender import RabbitSender
如果不想修改sys.path
,唯一的办法就是加-m
运行时标记python -m messaging_system.tests.PublisherSubscriberTest
见 How to fix "Attempted relative import in non-package" even with __init__.py编辑
好吧,我终于找到了终极答案: Relative imports for the billionth time
我建议你仔细阅读那个帖子,我从中学到了很多。
总之,如果你想这样做,你必须添加
path-to-Rabbit
至 sys.path
.
关于python - 在 pycharm 中创建项目结构的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136241/