use*_*095 7 python package pycharm
我是python的新手,我不知道如何以正确的方式组织项目结构,因此所有自动导入都可以在pycharm中运行.
这是我目前的结构.

在PublisherSubscriberTest中,pycharm生成了这个导入
from Rabbit.RabbitReceiver import RabbitReceiver
from Rabbit.RabbitSender import RabbitSender
Run Code Online (Sandbox Code Playgroud)
但它不起作用.这是输出.
ImportError:没有名为Rabbit.RabbitReceiver的模块
我做错了什么?
我对java比较熟悉.例如在java中,我只是创建包含一些类的包,然后我就可以在项目的任何地方导入它们.AFAIK与python不一样.
有人可以向我解释一下吗?
EDIT1:是的,我知道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
Run Code Online (Sandbox Code Playgroud)
如果不想修改,唯一的办法就是运行时sys.path添加flag-m
python -m messaging_system.tests.PublisherSubscriberTest
Run Code Online (Sandbox Code Playgroud)
请参阅如何修复“尝试在非包中进行相对导入”,即使使用 __init__.py
好吧,终于找到了终极答案:十亿次相对导入
我建议你仔细阅读这篇文章,我从中学到了很多东西。
简而言之,如果你想这样做,你必须添加path-to-Rabbit到sys.path.
| 归档时间: |
|
| 查看次数: |
8405 次 |
| 最近记录: |