如何在一台电脑上管理多个版本的Python?


如何在同一个电脑上安装多个版本的Python并轻松管理、切换?

pyenv轻松搞定。

安装pyenv

Mac

brew update
brew install pyenv

Windows

Windows系统的安装略微复杂。

1、使用以下任意一种方法来获取pyenv-win

  • 使用pip
# powershell或者git bash使用以下命令
pip install pyenv-win --target "$HOME\.pyenv"

# cmd使用以下命令
pip install pyenv-win --target "%USERPROFILE%\.pyenv"
  • 使用zip文件
    • 下载pyenv-win压缩包: 下载链接
    • 在根目录($HOME%USERPFOFILE%)下创建一个.pyenv目录
    • 解压该文件然后将其移至上一步所建目录下
    • 确保你在%USERPFILE%\.pyenv\pyenv-win下能看到bin目录
  • 使用git
    • powershell或git bash: git clone https://github.com/pyenv-win/pyenv-win.git "$HOME/.pyenv"
    • cmd: git clone https://github.com/pyenv-win/pyenv-win.git "%USERPROFILE%\.pyenv"
  • 使用Chocolatey
    • choco install pyenv-win

2、完成安装
如果使用Chocolatey,则直接跳至第三步即可

  • 1.添加PYENV、PYENV_HOME到环境变量:powershell下执行
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
  • 2.添加以下paths到PATH变量:powershell下执行
[System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
  • 3.重启终端并运行pyenv --version,可看到
$ pyenv --version 
pyenv 1.2.21
  • 4.在home目录下运行 pyenv rehash

Linux

cd ~
mkdir .pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

pyenv使用

下面列举出pyenv最常用的子命令

pyenv commands

列出所有可用的pyenv命令

pyenv local

通过将python版本名写在当前目录的.python-version文件内来设定本地应用程序的python版本。这个版本会覆盖全局版本,并且可以通过设置PYENV_VERSION环境变量或使用pyenv shell命令来覆盖。

  • 将当前目录切换至3.9.0版本的python:pyenv local 3.9.0

  • 显示当前目录使用的python版本:pyenv local

  • 取消设置当前目录的python版本:pyenv local --unset

  • 设置多个本地版本:

$ pyenv local 2.7.6 3.3.3
$ pyenv versions
  system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3

pyenv global

通过写入python版本到~/.pyenv/version来设置全局python版本。该配置会被.python-version文件或PYENV_VERSION环境变量覆盖

  • 设置全局python版本为2.7.6:pyenv global 2.7.6

  • 设置多个全局版本:pyenv global 2.7.6 3.3.3

pyenv shell

通过在shell中设置PYENV_VERSION环境变量来设置一个特定于shell的Python版本。该设置会覆盖特定于应用的版本和全局版本

  • 设置特定与shell的版本:pyenv shell pypy-2.2.1

  • 设置多个:pyenv shell pypy-2.2.1 3.3.3

  • 取消设置:pyenv shell --unset

pyenv install

安装一个指定版本的python。版本来源

Usage: pyenv install [-f] [-kvp] <version>
       pyenv install [-f] [-kvp] <definition-file>
       pyenv install -l|--list

  -l/--list             List all available versions
  -f/--force            Install even if the version appears to be installed already
  -s/--skip-existing    Skip the installation if the version appears to be installed already

  python-build options:

  -k/--keep        Keep source tree in $PYENV_BUILD_ROOT after installation
                   (defaults to $PYENV_ROOT/sources)
  -v/--verbose     Verbose mode: print compilation status to stdout
  -p/--patch       Apply a patch from stdin before building
  -g/--debug       Build a debug version

To list the all available versions of Python, including Anaconda, Jython, pypy, and stackless, use:

  • 列出所有可用的python:pyenv install --list
  • 安装某个特定版本的python:pyenv install 2.7.6

pyenv uninstall

卸载一个指定版本的python:pyenv uninstall 2.7.6

Usage: pyenv uninstall [-f|--force] <version>

   -f  Attempt to remove the specified version without prompting
       for confirmation. If the version does not exist, do not
       display an error message.

pyenv rehash

为所有的pyenv已知的python二进制文件安装一个垫片(用于覆盖PATH环境变量的python配置)。在安装完一个新的python后运行该命令。

pyenv version

查看当前激活的python的版本

$ pyenv version
2.7.6 (set by /home/yyuu/.pyenv/version)

pyenv versions

列出pyenv已知的所有python版本,并展示当前已激活版本

$ pyenv versions
  2.5.6
  2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
  3.3.3
  jython-2.5.3
  pypy-2.2.1

pyenv which

展示指定Python版本的全路径

$ pyenv which python3.3
/home/yyuu/.pyenv/versions/3.3.3/bin/python3.3

pyenv whence

列出所有安装了给定命令的Python版本

# 列出所有安装了2to3命令的python版本
$ pyenv whence 2to3
2.6.8
2.7.6
3.3.3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值