提问者:小点点

python中的相对导入我不知道多少次


我看过这些网站:

python相对导入示例代码不起作用

第十亿次相对进口

https://peps.python.org/pep-0328/

Python包:相对导入

Python中的相对导入

并且加载了更多我没有展示的内容,但是它们(答案/代码)由于某种原因无法相对导入其他Python“模块”。而且,我总是有这样一个永远重复出现的错误:< code>ImportError:在没有已知父包的情况下尝试相对导入。

我的目录结构如下所示:

program/
|_ main.py
|_ lib/
    |_ __init__.py
    |_ module1.py
    |_ module2.py
    |_ module3.py

在 main.py:

from .lib.module1 import do_this
print('Imported')

在模块1.py中:

def do_this():
    print('I did it')

我在用Linux做这个,但是就是不行!!!

编辑:

我不想做蟒蛇3 -m


共1个答案

匿名用户

我也有类似的问题,我已经创建了一个实验性的新导入库ultraimport,它允许基于文件系统的导入来解决您的问题。

在main.py中,您可以写:

import ultraimport
do_this = ultraimport('__dir__/lib/module1.py', 'do_this')
print('Imported')

它将始终有效,无论您如何运行代码。