我使用 Visual Studio Code 在 Python 中進行編碼。在我的 python 檔案中,我宣告了以下匯入:
import requests
from bs4 import BeautifulSoup
我創建了一個虛擬環境,在虛擬環境中安裝了所有必要的包,pip installpython 腳本運行良好。
在 Visual Studio Code 中,我修改了設定以使用安裝在全域級別的 PyLint(即默認的 Python 解釋器),因此我不需要在我的虛擬環境中安裝 pylint 以避免它出現在我的requirements.txt. 我的.vscode/settings.json看起來像這樣:
{
"python.pythonPath": "/Users/pazifik/.virtualenvs/fun-image-scraper/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.linting.pylintPath": "/opt/homebrew/bin/pylint"
}
Visual Studio Code 似乎正確地選擇了 Pylint,但是在“問題”視圖中它顯示了這一點:
Unable to import 'requests' pylint(importError) [3, 1]
Unable to import 'bs4' pylint(importError) [4, 1]
原因可能是全域安裝的 PyLint 無法看到虛擬環境內部的包。Visual Studio Code 中選擇的 Python 解釋器是來自虛擬環境的 Python 解釋器。
如何擺脫 Visual Studio Code 中的這些(錯誤)匯入錯誤?
編輯:為了更好地可視化我的問題和設定,這里有一些截圖:
虛擬環境中已安裝包的pip串列

requests虛擬環境中包的
pip展示
“問題”視圖(但是!腳本如上所述運行良好,只是顯示的錯誤令人困惑,因此我的問題)

PyLint 安裝在具有默認解釋器的全域環境中

uj5u.com熱心網友回復:
對不起,但它在我的電腦上運行良好。您能否再次確認您選擇了哪個python解釋器,以及您安裝的python包在哪里?
您可以從 VSCode 的左下角或終端中的環境名稱獲取您使用的 Python 解釋器:

的設定python.pythonPath在settings.json無法確定解釋你所使用的蟒蛇。
也許你只是在不同的環境中安裝了包,你能不能使用命令pip show {packagename}來檢查包安裝在哪里?
uj5u.com熱心網友回復:
非常抱歉我之前的回答,我之前修改了 pylintArgs,所以我沒有發現問題。
您可以在 settings.json 中添加:
"python.envFile": "${workspaceFolder}/.env",
并.env在作業區檔案夾下創建一個名為的檔案,并在其中添加:
PYTHONPATH=/Users/pazifik/.virtualenvs/fun-image-scraper/lib/python3.9/site-packages
解釋:
雖然你在 VSCode 中選擇了虛擬環境,在終端中可以發現PYTHONPATH已經修改了,但是pylint沒有通過終端路由,所以不會得到修改后的PYTHONPATH.
使用終端設定時,PYTHONPATH 會影響用戶在終端內運行的任何工具,以及擴展程式為通過終端路由的用戶執行的任何操作,例如除錯。但是,在這種情況下,當擴展程式執行未通過終端路由的操作時,例如使用 linter 或格式化程式,則此設定不會對模塊查找產生影響。
當使用 .env 檔案設定 PYTHONPATH 時,它將影響擴展代表您所做的任何事情以及除錯器執行的操作,但不會影響在終端中運行的工具。
你可以參考官方檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/395596.html
標籤:Python 视觉工作室代码 vscode-设置 派林特
