![](/img/trans.png)
[英]Error when importing module from a different folder in the same parent directory
[英]Importing files from different folder in the same parent directory
我有一個看起來像這樣的文件夾。 我正在嘗試從 test_cards.py 的 card.py 導入 class
└── 32-PROJECT-Texas-Hold-Em-Poker/
├── poker/
│ ├── card.py
│ └── __init__.py
└── tests/
└── test_cards.py
└── __init__.py
在 test.py 我試過:
from poker import card
from .poker import card
from ..poker import card
from 32-PROJECT-Texas-Hold-Em-Poker.poker import card
import sys
sys.path.insert(1, '/path/to/Test_folder_1/Test_folder_2')
from Test_folder_2 import add_numbers
但它不斷出現No module named poker或ImportError: mapped relative import with no known parent package 。 我嘗試了不同的變體以及改變init .py 文件的位置,老實說,我嘗試的比我上面發布的要多得多。 我已經閱讀了相對和絕對進口。 沒有將此目錄添加到我的路徑中,我完全迷失在看似簡單的任務中。 我現在已經花了幾天時間,但我似乎無法讓它發揮作用。 另外,我應該學習什么來更好地理解這些東西,而不是在網上找東西? 我最近剛剛了解了系統路徑和 venvs。
實際上,我正在關注來自 test_cards.py 的 Udemy 上 2022 年完整的 Python 訓練營,他只需鍵入即可從 card.py 獲得卡片 class
from poker.card import Card
謝謝
有幾種方法可以做到這一點。 這是一個非常簡單,適合測試代碼但不推薦在生產應用程序中使用的代碼:
import sys
import os.path
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'poker'))
import card
sys.path = sys.path[:-1]
無論您從哪里運行 Python 腳本,這都應該有效。
這里有更多信息: https://stackoverflow.com/questions/72852/how-to-do-relative-imports-in-python
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.