python導(dǎo)入三方包的顯示未解析的引用但是可以運行問題解決
問題
本來想安裝一個pyecharts包用的,但是安裝好導(dǎo)入的時候卻一直標紅,且不能自動補全,顯示的原因是未解析的引用。嘗試運行了一下沒有報錯,也運行出了結(jié)果,但標紅就一直在。

項目詳情
項目結(jié)構(gòu)

安裝好的包都在Lib/site-packages目錄下

當前項目的解釋器路徑D:/python工程文件/python-learn/.venv/Scripts/python.exe

常見問題排查思路
由于我對標紅一直耿耿于懷,看了很多帖子排除故障,總結(jié)了提及比較多的故障排查思路:
1、 檢查并配置正確的 Python 解釋器
確保當前的解釋器與你的項目環(huán)境一致(這里是一致的)
如果路徑正確但仍無法識別已安裝的庫,可以點擊選擇pycharm右下角的解釋器強制刷新一下(這里我看好多都說File > Settings > Project: [project-name] > Python Interpreter右上角有??刷新按鈕,我死活沒找到)

2、確認第三方庫是否安裝到正確的路徑
使用命令行進入項目根目錄后執(zhí)行以下命令查看當前環(huán)境中已安裝的包路徑:
python -c "import site; print(site.getsitepackages())"
該命令會輸出當前環(huán)境中 site-packages 的路徑,確認第三方庫是否確實安裝在 .venv/lib/pythonX.X/site-packages 目錄下。若庫安裝路徑與預(yù)期不符,說明可能使用了全局環(huán)境執(zhí)行了 pip install 操作,導(dǎo)致庫未被虛擬環(huán)境識別3
3、檢查虛擬環(huán)境是否繼承全局 site-packages
默認情況下,venv 不會繼承全局 Python 環(huán)境的 site-packages。如果在創(chuàng)建虛擬環(huán)境時使用了 --system-site-packages 參數(shù),則虛擬環(huán)境會繼承全局庫。但在某些情況下,這可能導(dǎo)致 PyCharm 無法正確識別庫路徑。
4、清除 PyCharm 緩存并重啟

5、標記源代碼根目錄
在 PyCharm 中,當一個目錄被標記為“Sources Root”,IDE 會將其識別為源代碼目錄,并將其添加到 Python 路徑中,以便支持模塊的自動識別和導(dǎo)入。未標記為源代碼根目錄的文件夾不會被 PyCharm 認為是模塊搜索路徑的一部分,因此即使程序運行正常,PyCharm 仍可能對導(dǎo)入語句標紅。
例如,若項目結(jié)構(gòu)如下:
project/ ├── src/ │ ├── __init__.py │ └── utils.py └── main.py
在 main.py 中導(dǎo)入 src.utils 時,如果 src 目錄未被標記為源代碼根目錄,PyCharm 將無法識別該模塊路徑,導(dǎo)致導(dǎo)入被標紅。右鍵點擊 src 文件夾并選擇 Mark Directory as > Sources Root 后,PyCharm 會將該目錄加入模塊搜索路徑,從而消除紅色波浪線并恢復(fù)代碼提示功能1。
標記源代碼根目錄后,PyCharm 的代碼補全、跳轉(zhuǎn)定義、重構(gòu)等功能將正常工作。此外,這種方式也適用于包含多個模塊的項目結(jié)構(gòu),確保所有模塊在 IDE 中都能被正確識別和索引。
最后解決方法
因為解釋器路徑和包安裝的路徑都沒問題,我又仔細看了一下標記源碼的根目錄這一條,IDE 的代碼補全、導(dǎo)航和重構(gòu)功能可能會受到文件夾標記的影響。例如,在 PyCharm 中,如果某個目錄被標記為“排除”,IDE 可能不會將其納入索引或自動補全建議中,但這不會影響運行時的行為。
最后我把site-packages標記為根目錄了,自己也不知道這樣做對不對,但好歹問題是解決了(感覺是個陰招兒)代碼不標紅且有補全功能了。如果有大佬看到有什么不對勁的地方希望指正(????)?"""


到此這篇關(guān)于python導(dǎo)入三方包的顯示未解析的引用但是可以運行問題解決的文章就介紹到這了,更多相關(guān)python導(dǎo)入三方包的顯示未解析的引用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas刪除部分數(shù)據(jù)后重新生成索引的實現(xiàn)
這篇文章主要介紹了pandas刪除部分數(shù)據(jù)后重新生成索引的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
python復(fù)制列表時[:]和[::]之間有什么區(qū)別
這篇文章主要給大家介紹了關(guān)于python復(fù)制列表時[:]和[::]之間有什么區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10

