繁体   English   中英

从python3.10中的同级目录导入模块

[英]import module from a sibling directory in python3.10

已经有 10 多篇关于此的帖子,没有一个答案对我有用,而且我还没有看到有人从同级目录导入某些内容的示例。

src
    __init__.py
    test.py
    package1
        __init__.py
        module1.py
    package2
        __init__.py
        module2.py

(_ init _.py 在大于 3.3 的 python 版本上不需要,但我仍然有它们,因为它们没有区别)

在 test.py 我有

import package1.module2

它工作正常但是问题是当我想从package2导入一些东西到package1,反之亦然。 我在 module2.py 中尝试了不同的导入方法,并且收到了这些不同的错误消息:

import src.package1.module1.py

出现错误:

ModuleNotFoundError: No module named 'src'

from .. import package1

出现错误:

ImportError: attempted relative import with no known parent package

这里的最佳答案是: 如何从同级目录导入 Python 脚本? 还给我上面显示的确切错误消息。 这里的答案: 如何从同级文件夹中导入 Python 模块? 什么都没有改变。 我是否遗漏了某些东西,或者不能在不同的文件夹/包之间导入东西? 我需要“sys.path hack”吗?

我给出了针对类似问题的几乎所有解决方案,但没有一个对我有用,但是,在我把头撞到墙上之后,我发现这个解决方案只需删除一个点就可以工作:

import sys
sys.path.append('..')

只需从 append 方法中的字符串中删除一个点,即:

sys.path.append('.')

或者您可以使用:

sys.path.insert(0, '.')

然后您可以从同级文件夹中导入任何模块。 我使用 python 3.9.13 进行了尝试,效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM