一些权威人士已经对在模块目录中运行脚本时出现的相对导入
问题进行了评论和/或回答,可以在此处找到链接:Python 3中的相对导入
我的问题是Pycharm
IDE正在解析该模块并在同一目录中运行它。因此我遇到了导入错误。请注意,该包中有一个__init__.py
文件。看起来对于pycharm
解析器来说是正常的。
from . logger import * # Logger is a module in same package
但是 ..
Traceback (most recent call last):
File "/git/bluej/fusion/python/pointr/bluej/util/DB.py", line 6, in <module>
from . logger import *
ImportError: attempted relative import with no known parent package
Run Configuration
是通过在模块中右键单击创建的。自动生成的版本类似于: 将 working directory
与脚本目录相同。 /git/bluej/fusion/python/pointr/bluej/util
(注意包名为 pointr.blue.util
):
我尝试将工作目录放在基本的python
目录级别下:/git/bluej/fusion/python/
回应评论:
logger
不是根包,所以以下代码无效:
我该如何在Pycharm
中开发、调试和运行使用相对导入的模块?
from . logger import *
这里有空格的拼写错误吗?如果是的话,请改为from .logger import *
,此外这个链接可能会对你有所帮助:https://napuzba.com/a/import-error-relative-no-parent。 - sahasrara62from logger import *
并以你正在执行此脚本的方式运行,它将正常工作(不知道为什么.
在这里理想情况下不起作用)。 - sahasrara62from logger import *
不起作用,因为logger
不是基本级别的包:请参见我的更新问题。 - WestCoastProjects