![](/img/trans.png)
[英]Python ImportError when trying to import a module in different path
[英]Relative path ImportError when trying to import a shared module from a subdirectory in a script
我正在嘗試從我的代碼所在的位置導入一個 util package 目錄,但我得到一個我不明白的 ImportError。
我在 Python 中有許多不同的導入語法變體,但都不起作用。
Stack Overflow 上有很多類似的問題,但沒有一個能幫助我理解或解決這個問題。
在我的腦海中,我嘗試了以下變體:
import util
import ..util
from .. import util
from ..util import parser
from AdventOfCode2022 import util
from ..AdventOfCode2022 import util
from ...AdventOfCode2022 import util
我猜其中的大多數都行不通,但我還是嘗試了它們以確保。
錯誤信息:
ImportError:嘗試在沒有已知父項的情況下進行相對導入 package
目錄結構:
.
├── day03
│ ├── input.txt
│ ├── part1.py
│ ├── part2.py
│ └── test_input.txt
└── util
├── __init__.py
└── parser.py
我只想從任何“day0*/”目錄導入我的 util package - 不知道為什么 Python 讓它變得如此困難!
兩種選擇:
./util/
的完整路徑添加到PYTHONPATH
環境變量。 例如,在 Bash 上,您的~/.bashrc
可能具有export PYTHONPATH="${PYTHONPATH}:/Users/foobar/projects/advent-of-code/util/"
。
sys.path.append('/path/to/application/app/folder')
。其他解決方案不起作用,因為:
day03
和父目錄不是具有自己的__init__.py
的模塊。 from..util import parser
類的行僅在涉及的所有內容都是模塊時才有效。./day03/
中運行代碼。 將此視為“我有一堆獨立的 Python 項目( day01
、 day02
等),它們都想共享我在另一個項目 ( util
) 中使用的通用代碼,該項目位於我計算機上的其他地方。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.