当前位置: 首页 > 知识库问答 >
问题:

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

夏侯元忠
2023-03-14

我看过这些网站:

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个答案

翟俊茂
2023-03-14

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

在main.py中,您可以写:

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

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

 类似资料:
  • 问题内容: 大家好-我正在用Python中的相关知识来表达自己的观点。我已经阅读了30篇文档,并在SO和其他论坛上阅读了很多帖子-似乎还是行不通。 我的目录结构目前看起来像这样 我希望expander.py和language_id.py可以访问功能模块。我运行python main.py,可以从components.expander import 和components.language_id i

  • 我读了无数关于python中相对导入的讨论,我认为它如此令人困惑的原因之一是它在一个python版本之间发生了变化(我的版本是3.6)。但这里的罪魁祸首似乎是PyCharm(除非我弄错了..)我想知道是否有人找到了解决这个问题的办法。对于具有此布局的项目: 假设aa.py在文件中包含一些fuction,如果我编写这个导入: 因此,为了让PyCharm高兴,我可以将添加到导入中,然后错误似乎就解决了

  • 问题内容: 我想从同一目录中的另一个文件导入函数。 有时它对我有用,但有时我得到: 有时它可与一起使用,但有时我也会得到: 我不了解这里的逻辑,也找不到任何解释。这看起来完全是随机的。 有人可以向我解释所有这些背后的逻辑是什么? 问题答案: 不幸的是,该模块需要位于程序包内部,有时还需要作为脚本运行。知道如何实现吗? 像这样的布局很普遍… … mymodule.py像这样… ......一个myo

  • 我想从同一目录中的另一个文件导入一个函数。 有时使用对我有效,但有时我会得到一个: 有时它与一起工作,但有时我也会得到一个: 我不明白这里的逻辑,也找不到任何解释。这看起来完全是随机的。 谁能给我解释一下这一切背后的逻辑是什么?

  • 我有以下目录结构: 火车和实用工具都有 init.py。我正在尝试从火车/主要内部导入utils.logger.py: 但它给出了“未知的父包错误”: 文件"训练/main.py",第4行,从...utils.logger导入记录器重要性错误:尝试相对导入没有已知的父包

  • 问题内容: 我似乎无法让绝对导入在python中工作。这是我的文件结构: foo.py: 我反而得到: 这到底是怎么回事?我觉得我缺少基本的东西。尽管这个例子很简单,但我需要绝对导入才能为实际项目工作,因此仅用相对导入替换导入是不可行的。我正在使用python 2.7.13 预先感谢您的任何见解! 问题答案: 由于未显示,因此我必须假设您正在运行,这会将脚本()的目录放在开始的位置,而实际上您希望