簡體   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