使用 pyenv 管理 Python 版本

使用 pyenv 管理 Python 版本

pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。

pyenv 主要用来管理 Python 的版本,比如一个项目需要 Python 2.x ,一个项目需要 Python 3.x 。 而 virtualenv 主要用来管理 Python 包的依赖,不同项目需要依赖的包版本不同,则需要使用虚拟环境。

pyenv 通过系统修改环境变量来实现 Python 不同版本的切换。而 virtualenv 通过将 Python 包安装到一个目录来作为Python 包虚拟环境,通过切换目录来实现不同包环境间的切换。

pyenv 的美好之处在于,它并没有使用将不同的 PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 PATH 的最前面插入了一个垫片路径(shims):

~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin

所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而使后方的系统路径失效。

依赖工具

不同系统请参考 Common build problems,安装必须的工具。

pyenv 安装

根据官网的 安装说明 或者 自动安装 。 如果使用 Mac 直接使用 Homebrew。安装成功后记得在 .bashrc 或者 .bash_profile 中添加三行来开启自动补全。

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

根据自己的环境配置。

自动安装

pyenv 提供了自动安装的工具,执行命令安装即可:

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

保证系统有 git ,否则需要新安装 git。

手动安装

如果想要更加详细的了解安装过程,可以使用手动安装。将 pyenv 检出到你想安装的目录。建议路径为:

$HOME/.pyenvcd ~
git clone git://github.com/yyuu/pyenv.git .pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

source ~/.bashrc  #添加环境变量

PYENV_ROOT 指向 pyenv 检出的根目录,并向 PATH P A T H 添 加 PYENV_ROOT/bin 以提供访问 pyenv 命令的路径。这里的 shell 配置文件(~/.bash_profile)依不同 Linux 而需作修改,如果使用 Zsh 则需要相应的配置 ~/.zshrc在使用 pyenv 之后使用 pip 安装的第三方模块会自动安装到当前使用 python 版本下,不会和系统模块产生冲突。使用 pip 安装模块之后,如果没有生效,记得使用 pyenv rehash 来更新垫片路径。

pyenv 常用命

使用 pyenv commands 显示所有可用命令

查看本机安装 Python 版本

使用如下命令查看本机安装版本 pyenv versions 星号表示当前正在使用的 Python 版本。使用 python -V 确认版本。

查看可安装 Python 版本

使用如下命令查看可安装版本

pyenv install -l
python 安装与卸载
$ pyenv install 2.7.3 # 安装python
$ pyenv uninstall 2.7.3 # 卸载python
python切换
$ pyenv global 2.7.3 # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
$ pyenv local 2.7.3 # 设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。

python优先级
shell > local > globalpyenv
会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

$ pyenv shell 2.7.3 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
$ pyenv shell --unset
$ pyenv rehash # 创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)

pyenv-virtualenv

pyenv 插件: pyenv-virtualenv使用自动安装 pyenv 后,它会自动安装部分插件,通过pyenv-virtualenv 插件可以很好的和 virtualenv 结合:

einverne@ev  ~  cd ~/.pyenv/plugins
einverne@ev  ~/.pyenv/plugins   master  ll
total 24K
drwxr-xr-x 4 einverne einverne 4.0K Apr 22 10:55 pyenv-doctor
drwxr-xr-x 5 einverne einverne 4.0K Apr 22 10:55 pyenv-installer
drwxr-xr-x 4 einverne einverne 4.0K Apr 22 10:55 pyenv-update
drwxr-xr-x 7 einverne einverne 4.0K Apr 22 10:55 pyenv-virtualenv
drwxr-xr-x 4 einverne einverne 4.0K Apr 22 10:55 pyenv-which-ext
drwxr-xr-x 5 einverne einverne 4.0K Apr 22 10:54 python-build
创建虚拟环境
$ pyenv virtualenv 2.7.10 env-2.7.10

若不指定python 版本,会默认使用当前环境python版本。如果指定Python 版本,则一定要是已经安装过的版本,否则会出错。环境的真实目录位于 ~/.pyenv/versions 下

列出当前虚拟环境
pyenv virtualenvs
pyenv activate env-name # 激活虚拟环境
pyenv deactivate #退出虚拟环境,回到系统环境
删除虚拟环境
pyenv uninstall my-virtual-env
rm -rf ~/.pyenv/versions/env-name # 或者删除其真实目录

使用pyenv 来管理python,使用 pyenv-virtualenv 插件来管理多版本 python包。此时,还需注意,当我们将项目运行的 env 环境部署到生产环境时,由于我们的 python 包是依赖python 的,需要注意生产环境的 python 版本问题。

所有命令

 pyenv commands
activate
commands
completions
deactivate
doctorexecglobal
help
hooks
init
install
installerlocal
offline-installer
prefix
rehash
root
shell
shims
uninstall
update # 更新 pyenv 及插件
version--version
version-file
version-file-read
version-file-write
version-name
version-origin
versions
virtualenv
virtualenv-delete
virtualenv-init
virtualenv-prefix
virtualenvs
whence
which

PyCharm

PyCharm 中可以非常方面的切换 Python 环境非常方便。

Tips

更换 pip 源¶因为国内网络环境,如果在局域网内下载 pip 慢,可以尝试使用aliyun提供的镜像,创建 vim ~/.pip/pip.conf ,然后填入:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

参考¶
* pyenv 下载地址 https://github.com/pyenv/pyenv
* virtualenv 中文文档地址 http://virtualenv-chinese-docs.readthedocs.io/en/latest/#
* http://my.oschina.net/lionets/blog/267469
* https://github.com/yyuu/pyenv-virtualenv
* http://seisman.info/python-pyenv.html

原文地址:http://einverne.github.io/post/2017/04/pyenv.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: pyenv是一种Python版本管理工具,可以用来改变全局的Python版本,安装多个版本Python,设置目录级别的Python版本,以及创建和管理虚拟环境。通过pyenv,可以实现对不同版本Python进行管理,并且可以通过virtualenv设置不同的虚拟环境对Python库的版本进行管理。这样,在程序运行的过程中,可以根据不同的运行需求使用不同的Python版本。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Python版本管理-pyenv](https://blog.csdn.net/peng78585/article/details/131767881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用pyenv管理python版本](https://blog.csdn.net/Zhangsan0219/article/details/121237529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python版本管理工具之pyenv](https://blog.csdn.net/YiJie__ShuSheng/article/details/90448944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值