python - 在 pycharm 中创建项目结构的正确方法是什么?

标签 python package pycharm

我是 python 新手,不知道如何以正确的方式组织项目结构,所以所有自动导入都可以在 pycharm 中工作。

这就是我目前的结构。

enter image description here

在 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-Rabbitsys.path .

关于python - 在 pycharm 中创建项目结构的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136241/

相关文章:

Java: "this"关键字的问题

python - 进程完成,退出代码为 -1073741571 (0xC00000FD) Tensorflow

Python赋值破坏

Python:从数据框创建邻接矩阵

python - 1 到 n 的整数之和

运行 python 代码时出现 java.lang.ClassNotFoundException : javax. xml.bind.JAXBException

django - 尝试从 PyCharm 运行远程解释器的调试配置时出现语法错误

python - import ... as ... 似乎失败, 'module' 没有属性

git - 如何在私有(private) GitLab 存储库中使用 Go

r - 错误 : package was installed by an R version with different internals; it needs to be reinstalled