我知道有幾十個 Python 包匯入問題,但我似乎找不到有效的答案。大多數答案似乎是關于缺少 __init__.py 來制作一個包,但我在專案的基礎中有一個(我也在子檔案夾中嘗試過)。
我有一個形式的專案
package
-- __init__.py
-- weasel.py
-- badgers
| -- __init__.py
| -- a.py
weasel.py 只包含一個測驗函式
def test_function():
return "HELLO"
我希望能夠從 a.py 呼叫 test_function,我已經嘗試過(在檔案夾 badgers 中都有和沒有init .py),但似乎都沒有。
import weasel -> ModuleNotFoundError: No module named 'weasel'
from . import weasel -> ImportError: attempted relative import with no known parent package
import package.weasel -> ModuleNotFoundError: No module named 'package'
from package import weasel
到目前為止,我設法使用的 hack 在 Spyder 和我的生產環境中運行良好;專案是部署用于渲染的 Dash 應用程式(因此是 Flask)。
import sys
sys.path.append("..")
import weasel
但這只會在 VS Code 中引發 ModuleNotFoundError 。
我并不反對 hack :S 但如果我可以在 VS Code 中構建專案,當前專案的需求會讓生活變得更加輕松。
拜托,我懇求stackoverflow社區有人可以讓我知道我做錯了什么嗎?還是可以在 VS Code 中使用的 hack?
謝謝,
uj5u.com熱心網友回復:
這是路徑造成的。vscode運行檔案的路徑不是當前檔案路徑。您需要手動添加它。
import sys
sys.path.append("your package's Path") #for example, my path is "C:/my_python/package"
import weasel
這是我的目錄結構。
尖端:
不要使用“..”,它實際上會在路徑而不是父目錄中添加兩個逗號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/467673.html