6

关于如何为 pyenv 设置 Python 版本的任何建议?

例如

$ python3
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) 
$ pyenv local
pyenv: no local version configured for this directory
$ pyenv local 3.6.0
pyenv: version `3.6.0' not installed
$ pyenv local v3.6.0:41df79263a11
pyenv: version `v3.6.0' not installed
4

3 回答 3

8

您需要先设置一个虚拟环境。例如,您可以创建一个pyenv360

$ pyenv virtualenv 3.6.0 pyenv360

并将其设置为文件夹my-folder的默认 python

$ cd my-folder
$ pyenv local pyenv360

通过这样做,每当您进入此文件夹时,它将开始使用在这种情况下的pyenv360哪些引用。python 3.6.0

您可以通过以下方式检查它是否有效:

$ pyenv local

应该显示pyenv360

于 2017-06-19T20:05:11.727 回答
5

(假设你pyenv按照官方说明安装。)

pyenv识别两种 Python 安装:

  • system-- 来自 的 Python 可执行文件PATH,无论其版本如何
  • 编号版本 - 安装pyenv install在下$PYENV_ROOT/versions

pyenv认为以前的安装不在其控制范围内,因此其命令在查找特定版本时不会考虑其版本。


要找出您所指pyenv的 POV 中的哪个安装,请检查python3

  • pyenv versions
    • 选择的 Python 3 版本是否为“系统”;或者
  • which python3pyenv which python3如果前者指向<pyenv root>/shims/
    • 结果是否指向外部$PYENV_ROOT

如果您的 3.6.0 安装确实不在pyenv的控制范围内,您需要选择它pyenv local system并自行确保您的PATH安装指向它。

  • 更具体地说,您的PATH第一个指向<pyenv_root>/shims然后指向正确的python3
    • 您可以使用它which -a python3来快速检查
于 2019-07-06T01:53:28.873 回答
3

概述

'pyenv' 具有设置'local' 和'global' 版本的功能,

其中“本地”是我们为特定目录设置的版本,如果您在该目录或其任何子目录中(如果没有为该子目录设置另一个“本地”),它会以分层方式自动激活。

而“全局”是我们为整个系统设置的版本,它可用于任何目录(如果未为该目录设置本地版本,则本地版本将在该目录中可用)

如何设置“全局”和“本地”

现在要设置python的“全局”或“本地”版本,该python版本应该安装在您的系统中,无论是您使用的“os”还是“pyenv”。而且根本不需要创建虚拟环境。

通过 'pyenv' 安装任何版本

查看 pyenv install --list 选择其中一个名称(例如 3.6.0)并使用命令 的输出pyenv install <version-name>

请注意,操作系统安装的 python 版本被“pyenv”称为“系统”,而“pyenv”安装的版本将由该 python 版本的版本号表示。查看 pyenv 使用安装的所有版本pyenv versions

现在来到如何设置全局版本和本地版本的问题,使用

pyenv global <version-name-as used-by-pyenv>(必须安装版本)设置全局版本

对于设置本地python,首先,移动到要设置本地版本的目录,然后

pyenv local <version-name-as used-by-pyenv>

我在 ubuntu 20.04 和 Linux mint 20 中遇到的问题

现在有时“系统”python由于“pyenv”无法访问而无法访问,@ivan_pozdeev 很好地解释了原因,但我想解决我在 ubuntu 20.04 和 Linux mint 20 中遇到的有线问题(因为它是基于 ubuntu 20.04)。

在这里,我无法访问系统 python,即使系统 python 二进制文件位于 pyenv 的路径中。

错误是 pyenv: system version not found in PATH

原因:pyenv 找不到“系统”,因为 pyenv 在路径(即“/usr/bin”)中寻找名称为“python”而不是“python3”的二进制文件,而在 ubuntu 20.04 中,python 二进制文件用名称“python3”寻址,而不是用“python”寻址

解决方案:解决方案是在“/usr/bin”中为“python3”创建名为“python”的符号链接,使用的命令是 sudo ln -s /usr/bin/python3 /usr/bin/python

于 2020-08-20T04:10:47.333 回答