pyenv local - 设置本地版本的Python

时间:2017-04-11 12:06:34

标签: python pyenv

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

E.g。

$ 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

3 个答案:

答案 0 :(得分:5)

您需要先设置虚拟环境。例如,您可以通过

创建一个名为pyenv360的env
$ pyenv virtualenv 3.6.0 pyenv360

并通过

将其设置为文件夹my-folder的默认python
$ cd my-folder
$ pyenv local pyenv360

通过这样做,无论何时进入此文件夹,它都会开始使用pyenv360,在这种情况下引用python 3.6.0

您可以查看它是否正在使用:

$ pyenv local

应显示pyenv360

答案 1 :(得分:2)

概述

“ pyenv”具有设置“本地”和“全局”版本的功能,

其中“本地”是我们为特定目录设置的版本,如果您位于该目录或其子目录中的任何子目录中(如果未为该子目录设置另一个“本地”),它将自动被激活

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

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

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

通过“ pyenv”安装任何版本

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

请注意,由os安装的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中遇到了

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

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

错误是 pyenv: system version not found in PATH

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

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

答案 2 :(得分:0)

(假设您已经按照官方说明安装了pyenv。)

pyenv可以识别两种Python安装:

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

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


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

  • pyenv versions
    • 所选的Python 3版本是否为“ system”;或
  • which python3(如果前者指向pyenv which python3,则<pyenv root>/shims/
    • 结果是否指向外部$PYENV_ROOT

如果您的3.6.0安装确实不在pyenv的控制范围内,则需要使用pyenv local system进行选择,并自行确保PATH的位置指向

  • 更具体地说,您的PATH首先指向<pyenv_root>/shims,然后指向正确的python3
    • 您可以使用which -a python3快速检查一下