繁体   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