簡體   English   中英

pipenv 無法從 pyenv(pyenv-win) 獲取 python 版本?

[英]pipenv is not able to pickup the python versions from pyenv(pyenv-win)?

我嘗試在 python 中將 pyenv(pyenv-win) 與 pipenv 一起使用。我使用 pyenv 安裝了 python 的一些版本,但是當我嘗試使用我通過 pyenv 安裝的版本之一創建虛擬環境時。 pipenv 無法從 pyenv 獲取 python 版本。

pipenv --python 3.10.6
C:\Users\MUZUB\test1>pipenv --python 3.10.6
Warning: Python 3.10.6 was not found on your system...
Would you like us to install CPython 3.10.6 with Pyenv? [Y/n]: n

安裝的 Pyenv Python 版本:

C:\Users\MUZUB>pyenv versions
  3.10.6
  3.10.7
  3.11.0rc2
  3.6.0
  3.7.1
  3.7.2
  3.8.1
  3.9.2
  3.9.5
* 3.9.9 (set by C:\Users\MUZUB\.pyenv\pyenv-win\version)

我默認的python版本是3.11

C:\Users\MUZUB\test1>python
Python 3.11.1 (tags/v3.11.1:a7a450f, Dec  6 2022, 19:58:39) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

當我沒有指定 python 的特定版本時。pipenv 正在使用我的默認 python 安裝來創建虛擬環境。

C:\Users\MUZUB\test1>pipenv shell
Creating a virtualenv for this project...
Pipfile: C:\Users\MUZUB\test1\Pipfile
Using C:/Users/MUZUB/Desktop/python311/python.exe (3.11.1) to create virtualenv...
[    ] Creating virtual environment...created virtual environment CPython3.11.1.final.0-64 in 4715ms
  creator Venv(dest=C:\Users\MUZUB\.virtualenvs\test1-y9ytVeDV, clear=False, no_vcs_ignore=False, global=False, describe=CPython3Windows)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\MUZUB\AppData\Local\pypa\virtualenv)
    added seed packages: pip==22.3.1, setuptools==65.6.3, wheel==0.38.4
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

Successfully created virtual environment!
Virtualenv location: C:\Users\MUZUB\.virtualenvs\test1-y9ytVeDV
requirements.txt found in C:\Users\MUZUB instead of Pipfile! Converting...
Warning: Your Pipfile now contains pinned versions, if your requirements.txt did.
We recommend updating your Pipfile to specify the "*" version, instead.
Launching subshell in virtual environment...
Microsoft Windows [Version 10.0.22621.963]
(c) Microsoft Corporation. All rights reserved.

用戶環境變量:

PYENV         C:\Users\MUZUB\.pyenv\pyenv-win\
PYENV_HOME    C:\Users\MUZUB\.pyenv\pyenv-win\
PYENV_ROOT    C:\Users\MUZUB\.pyenv\pyenv-win\versions

小路:

C:\Users\MUZUB\Desktop\python311
C:\Users\MUZUB\Desktop\python311\Scripts
C:\Users\MUZUB\.pyenv\pyenv-win\shims
C:\Users\MUZUB\.pyenv\pyenv-win\bin
C:\Users\MUZUB\.pyenv\pyenv-win\versions

我試過更改路徑中的優先級。但它不起作用。

我期待與 pyenv 一起安裝的 python 版本可用於 pipenv。

嘿問題是你引用的是pyenv下python安裝的相對路徑。

您應該嘗試在 pyenv 下安裝到 python 的絕對路徑:

pipenv --python C:\Users\MUZUB\.pyenv\pyenv-win\versions\3.10.0

看起來您正在使用 pipenv 創建虛擬環境,但無法找到您使用 pyenv 安裝的 Python 版本。 這可能是由於幾個不同的因素。

一種可能是 pyenv 安裝的包含 Python 可執行文件的目錄不在系統的 PATH 環境變量中。 當你運行 pipenv 命令時,它會在 PATH 列出的目錄中搜索 Python 可執行文件,所以如果 pyenv 安裝的包含 Python 可執行文件的目錄不在 PATH 中,pipenv 將無法找到它們。

要解決此問題,您可以將包含由 pyenv 安裝的 Python 可執行文件的目錄添加到您的 PATH 環境變量中。 為此,您可以按照以下步驟操作:

打開“開始”菜單並搜索“環境變量”。 單擊“編輯系統環境變量”按鈕。 在出現的系統屬性window中,點擊“環境變量”按鈕。 在環境變量 window 中,向下滾動到“系統變量”部分並找到“路徑”變量。 單擊“路徑”變量旁邊的“編輯”按鈕。 在出現的Edit Environment Variable window中,點擊“New”按鈕,添加包含pyenv安裝的Python可執行文件的目錄。 這些目錄應位於 C:\Users\MUZUB.pyenv\pyenv-win\versions 下,您需要添加的目錄將取決於您使用 pyenv 安裝的 Python 版本。 單擊“確定”關閉編輯環境變量window,然后再次單擊“確定”關閉環境變量window。完成此操作后,您應該可以使用pipenv使用pyenv安裝的Python版本創建虛擬環境。 您可能需要關閉並重新打開任何命令提示符 windows 才能使更改生效。

如果這不能解決問題,則可能存在一些其他問題阻止 pipenv 找到 pyenv 安裝的 Python 可執行文件。 檢查 pyenv 版本命令的 output 可能會有所幫助,以確保實際列出了您希望安裝的 Python 版本,並驗證包含 Python 可執行文件的目錄是否正確地列在您的 PATH 環境變量中。 您還可以嘗試運行 pipenv 命令,並將 --python 標志設置為您要使用的 Python 可執行文件的完整路徑,看看是否有幫助。

以下是您可以嘗試解決此問題的一些方法:

確保已將 pyenv 目錄添加到 PATH 環境變量中。 這將允許 pipenv 找到您使用 pyenv 安裝的 Python 版本。

如果您使用的是 pyenv-win 插件,請確保已將 pyenv-win shim 添加到您的 PATH 環境變量中。 此填充程序允許您在 Windows 命令提示符下使用 pyenv 命令。

在創建虛擬環境時嘗試指定 Python 可執行文件的完整路徑。 例如: pipenv --python /path/to/python.

如果您將 pipenv 用於特定項目,請嘗試使用 --python 標志指定 Python 可執行文件以用於虛擬環境。 例如: pipenv --python /path/to/python install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM