Vscode 配置 python poetry 虛擬環境

一、 Vscode 配置 poetry 虛擬環境的方法

方法一:

1. 找到虛擬環境存放路徑

windows下,在文件管理器地址欄輸入:

%userprofile%\AppData\Local\pypoetry\Cache\virtualenvs

找到虛擬環境存放路徑 C:\Users\XXX\AppData\Local\pypoetry\Cache\virtualenvs。

2.在獲取了虛擬環境路徑的情況下,我們可以編輯包含VsCode設置的json文件settings.json,並將其分配到一個新的字段,稱爲 "python.venvPath"。需要注意的是,路徑中的反斜槓"\"需要用雙反斜槓"\"替換。

windows:

{
 “python.venvPath”:C:\\Users\\XXX\\AppData\\Local\\pypoetry\\Cache\\virtualenvs”
}

ubuntu:

{
 “python.venvPath”:”~/.cache/pypoetry/virtualenvs/”
}

3.vscode 即可識別到虛擬環境的信息。

方法二:

1. 在使用poetry創建第一個項目之前,建議先對其進行配置,這樣就可以在項目目錄中的.venv文件夾中創建虛擬環境。

當你使用VsCode或Pycharm這類集成開發環境時就會變得非常方便,因爲它們可以立即識別並選擇正確的解釋器。

poetry configsettings.virtualenvs.in-project true
注意:你只需設置一次配置,設置結果將在全局環境保留。

poetry config virtualenvs.create false --local 在部署時先使用這個命令可以使所有的包安裝到系統中而不是虛擬環境裏

2.使用 poetry install 命令創建虛擬環境(確保當前目錄有 pyproject.toml 文件):

$ poetry install

這個命令會讀取 pyproject.toml 中的所有依賴(包括開發依賴)並安裝,如果不想安裝開發依賴,可以附加 –no-dev 選項。如果項目根目錄有 poetry.lock 文件,會安裝這個文件中列出的鎖定版本的依賴。如果執行 add/remove 命令的時候沒有檢測到虛擬環境,也會爲當前目錄自動創建虛擬環境。

項目文件夾下就會生成【.venv】文件夾。

3. vscode會立即識別到這個.venv的虛擬環境。

二、poetry 虛擬環境的設置

以上兩種方法配置poetry虛擬環境都可以被vscode識別,若我們需要多套虛擬環境的時候,就可以使用 poetry env 命令爲一個項目創建多個虛擬環境,下面是 poetry創建虛擬環境的介紹:

1.創建虛擬環境

(1)利用 virtualenvs.create=true 自動創建

當參數 virtualenvs.create=true 時,執行 poetry install  poetry add 時會檢測當前項目是否有虛擬環境,沒有就自動創建。

這裏一個問題就是:如果系統中既有Python2又有Python3,且項目既支持Python2也支持Python3,那poetry會優先使用Python2。

(2)poetry env

此命令以及子命令用於處理虛擬環境相關的操作。

如果需要創建的虛擬環境與當前系統默認的 Python 版本不一致,pypoetry 會自動去尋找不同於當前 Python 環境的 Python 解釋器位置,如果它找不到,那麼就只能手動指定解析器的絕對路徑。

在非 Windows 系統上,一般可以通過 which pythonwhich python3.7 一類的命令尋找到自己指定的 Python 版本的位置。

在 Windows 系統中,可以通過環境變量來尋找 Python 的解釋器位置。

poetry env use PYTHONPATH

使用 poetry env use PYTHONPATH 命令創建虛擬環境。

# in windows
poetry env use C:\Users\XXX\AppData\Local\Programs\Python\Python38\python.exe

poetry env list

poetry 可以使用 poetry env use PYTHONPATH 爲一個項目創建多個不同的虛擬環境。

通過 poetry env list 可以查看當前項目所有的虛擬環境,增加 --full-path 可以看到虛擬環境的完整路徑,一般在配置 VSCode、PyCharm 的時候需要使用。

2. 激活虛擬環境

執行poetry的命令並不需要激活虛擬環境,因爲poetry會自動檢測當前虛擬環境,如果想在當前目錄對應的虛擬環境中執行命令,可以使用以下命令:

poetry run <你的命令> # 例如: poetry run python flask.py

poetry run 可以直接在當前虛擬環境中運行命令;poetry shell 可以在 shell 中激活當前虛擬環境,使用如下命令:

poetry shell

3. 刪除虛擬環境路徑

(1)可以直接刪除虛擬環境文件夾

(2)通過 poetry env -h 查看幫助文檔:

所以執行刪除虛擬環境時,指定對應的解析器版本即可。

poetry env remove python2 
poetry env remove python3

三、最後:

使用 PyPi 鏡像

由於網絡原因,部分地區使用默認的 PyPi 源可能效果不佳。通過在 pyproject.toml 中配置源可以使 poetry 從指定的 PyPi 鏡像中拉取代碼。 配置方式參考 官方文檔 。注意 default = true 是必須的,否則 poetry [[tool.poetry.source]] 僅對部分環節有效, 在某些步驟 (如 resolve dependencies...) poetry 仍然使用的是 pypi url, 仍然會從默認源拉取哈希值,而我們國內訪問不了或者連接超時, 就引起了報錯。 在 pyproject.toml 末尾添加下面的內容來設置自定義鏡像源:

[[tool.poetry.source]]
name = "aliyun"
default = true
url = "http://mirrors.aliyun.com/pypi/simple/"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章