文章目录
如何在同一个电脑上安装多个版本的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"
- powershell或git bash:
- 使用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