pyenv
是 Python
版本管理工具。 pyenv
可以改变全局的 Python
版本,安装多个版本的 Python
,设置目录级别的 Python
版本,还能创建和管理 virtual python environments
。所有的设置都是用户级别的操作,不需要 sudo
命令。
pyenv
主要用来管理 Python
的版本,比如一个项目需要 Python 2.x
,一个项目需要 Python 3.x
。 而 virtualenv
主要用来管理 Python
包的依赖,不同项目需要依赖的包版本不同,则需要使用虚拟环境。
pyenv 原理简介
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/.pyenv
cd ~ 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
添加 $PYENV_ROOT/bin
以提供访问 pyenv
命令的路径。
这里的 shell
配置文件( ~/.bash_profile
)依不同 Linux
而需作修改,如果使用 zsh
则需要相应的配置 ~/.zshrc
在使用 pyenv
之后使用 pip
安装的第三方模块会自动安装到当前使用 Python
版本下,不会和系统模块产生冲突。使用 pip
安装模块之后,如果没有生效,记得使用 pyenv rehash
来更新垫片路径。
pyenv 常用命令
使用 pyenv commands
显示所有可用命令
Python 配置
# 查看系统当前安装的 python 列表 pyenv versions # 列出可安装版本 pyenv install --list # 安装指定版本 Python pyenv install -v 3.5.1 # 卸载指定版本 Python pyenv uninstall 2.7.3 # 显示当前python安装路径 pyenv which python # 创建垫片路径 # 为所有已安装的可执行文件创建 shims # 如:~/.pyenv/versions/*/bin/* # 每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令 pyenv rehash 复制代码
Python 切换
# 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式 pyenv global <版本号> # 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。 # pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。 pyenv local <版本号> # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。 pyenv shell <版本号> # --unset 参数可以用于取消当前 shell 设定的版本。 pyenv shell --unset 复制代码
Python 优先级
shell > local > global
pyenv-virtualenv
pyenv-virtualenv
是 pyenv
下基于 virtualenv
的一款插件,通过 pyenv-virtualenv
插件可以很好的和 virtualenv
结合。
安装
使用自动安装 pyenv 后,它会自动安装部分插件,其中包括了 pyenv-virtualenv
。
若使用 Homebrew
进行安装,则可使用命令 brew install pyenv-virtualenv
安装 pyenv-virtualenv
插件。
这样安装之后需要执行如下配置:
# 使用 zsh shell vim ~/.zshrc # 使用系统默认 vim ~/.bash_profile # 在 `.zshrc` 或 `.bash_profile` 文件最后写入: # pyenv-virtualenv if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi # 使配置生效 source ~/.zshrc # or source ~/.bash_profile 复制代码
使用
# 创建虚拟环境 # 若不指定 Python 版本,默认使用当前环境 Python 版本 pyenv virtualenv <Python 版本号> <虚拟环境名称> # 列出当前虚拟环境 pyenv virtualenvs # 激活虚拟环境 pyenv activate <虚拟环境名称> # 退出虚拟环境 pyenv deactivate # 删除虚拟环境 pyenv uninstall <虚拟环境名称> 复制代码
Tips:更换 pip 源
因为国内网络环境,如果在局域网内 pip
下载慢,可以尝试使用阿里云提供的镜像,创建 vim ~/.pip/pip.conf
,然后填入:
[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com 复制代码
更多 pip
国内源:
豆瓣: http://pypi.douban.com
阿里云: http://mirrors.aliyun.com/pypi/simple
清华大学: https://pypi.tuna.tsinghua.edu.cn/simple
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Structs 全版本漏洞利用总结
- 利用GitHub实现简单的个人App版本更新
- 利用Gradle Plugin通配版本进行远程代码执行
- 手工编写简化版CommonsCollections6,带你实现Java8全版本反序列化利用
- LWN:利用debounce buffer来阻止恶意设备利用DMA窃取信息
- 新医药 Leon Nanodrugs完成1850万欧元A轮融资,利用粒子合成方法提高药物利用率
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Anatomy
Robert Hoekman Jr.、Jared Spool / New Riders / 2009-12-11 / USD 39.99
At the start of every web design project, the ongoing struggles reappear. We want to design highly usable and self-evident applications, but we also want to devise innovative, compelling, and exciting......一起来看看 《Web Anatomy》 这本书的介绍吧!