使用python进行开发,Unix/Linux 的环境会更加友好,不会出现莫名其妙的bug,虽然 windows store 也发布了 Ubuntu 子系统,但是功能不够全,系统不够完善。本文全面介绍了 Ubuntu、Archlinux、Centos、Mac下安装和使用pyenv的方法。Windows下使用pyenv的方法请移步 pyenv-win 源码地址查看: https://github.com/pyenv-win/pyenv-win ,当然pyenv也可以在Windows store的Linux子系统中使用。
python 版本比较多,2 和 3 相差比较大,当你需要不同环境的时候,选择使用 docker,docker的使用教程可以在菜鸟教程找到
https://www.runoob.com/docker/docker-tutorial.html
也可以在官网查找相关文档
https://www.docker.com/
如果用 docker 那就不需要隔离环境了,如果要直接运行在服务器上,那就必须有隔离环境。本文将会介绍使用pyenv来创建不同python版本的虚拟环境。
使用 pyenv 和 pyenv-virtualenv ,在 Linux 下完美隔离 python 各个版本
注意: 本文的 Linux和Mac OS X 下进行,不涉及 windows下的安装使用
清单
- git
- bash,zsh或者brew
- pyenv
- pyenv-virtualenv
1、安装 git
在各大 Linux 的发行版下安装 git 都非常简单,此处只展示部分示例
- archlinux
- debian/ubuntu
- centos
- Mac
2、开启终端
Ubuntu下使用 shell
Ctrl + Alt + t 快捷键打开终端
3、安装 pyenv
说明: 本文的所有安装都严格遵守官方文档,与官方文档完全保持一致。
源码git 地址:https://github.com/pyenv/pyenv
在终端中执行如下命令完成安装:
首先把项目克隆下来,放在家目录下的隐藏文件夹中:.pyenv
如果你是Mac用户,可以使用brew命令来安装
然后配置环境变量:
- 如果你使用 bash,就依次执行如下命令:
- 如果你使用 zsh,就依次执行如下命令:
- 如果你用Mac,就执行如下命令:
echo 命令的含义是:将引号中内容写入某文件中
请注意,以上的三条 echo 命令的最后一条命令,请保证它引号中的内容处于 ~/.bashrc 或者 ~/.zshrc 的最底部。
因为在 pyenv 初始化期间会操作 path 环境变量,导致不可预测的行为。
查看文件的底部内容,可以使用 tail 命令,用法:tail ~/.bashrc 或者 tail ~/.zshrc,编辑文件可以使用 vim 或者 vscode
然后,在使用 pyenv 之前,需要初始化 shell 环境,执行如下命令
或者
同样也可以关闭当前的终端窗口,重新启动一个。
4、安装 pyenv-virtualenv
源码git 地址:https://github.com/pyenv/pyenv-virtualenv
把插件克隆在刚才已经安装完毕的 pyenv 的 plugins 文件夹中
如果你是Mac用户可以使用brew命令来安装
然后配置环境变量
- 如果你使用 bash,就执行如下命令:
- 如果你使用 zsh,就执行如下命令:
最后,在使用 pyenv 之前,重新初始化 shell 环境,执行如下命令
或者
或者重启一个终端窗口。
没有出错的话,此时已经完成了所有的安装操作,如果提示错误,请检查前文中的路径和环境变量(请检查是否使用对应系统环境的命令)是否配置正确,或者将操作回退,重新执行安装命令
此处仅展示 pyenv 和 pyenv-virtualenv 的日常用法
检查安装是否正确
- 检查 pyenv 的版本
- 查看 pyenv 已经托管了哪些 python 版本
如果显示了正常的版本信息,说明安装成功,如果显示类似于 command not found 之类的提示,说明安装失败,请查看第一章末尾的提示。
安装 3.6.6 版本的 python
这里需要注意,某些情况下会安装失败,Build failed.
Don’t panic,我们可以查看pyenv在github wiki里面准备的应对方案,原文地址 https://github.com/pyenv/pyenv/wiki
摘录如下,只需要执行对应的命令即可:
- archlinux用户
- Mac用户
- Ubuntu/Debian/Mint用户
- CentOS/Fedora <= 21 用户,确保已经安装了 xz 工具
- Fedora >= 22 用户,确保已经安装了 xz 工具
- openSUSE用户
- Solus 用户
- Linuxbrew用户
安装完这些补充的工具之后,再次执行:
就可以成功了,你可以不断的使用来查看被 pyenv 托管的 python 版本,多版本之间不会冲突,完美共存
执行,然后按下 tab 键,就可以看到所有可选的安装版本
如何使用已经安装的版本创建虚拟环境
pyenv和pyenv-virtualenv的协作可以这么理解:
pyenv 托管安装的 python 版本,python-virtualenv 则调用对应的 python 版本
下面是如何创建和使用虚拟环境
1. 创建虚拟环境
首先需要创建一个虚拟环境,执行命令:
最后一个是环境的名字,可以随便取。安装成功会显示:
它写明了该虚拟环境的绝对路径。
2. 激活虚拟环境
在任意目录下,执行命令:
在终端命令行前面,会出现 的提示,进入python环境可以看到版本为虚拟环境设定的3.6.6,使用,可以看到 pip 包安装的绝对路径
使用终端进入任意目录,比如 ~/envtest
然后在该目录下执行:
也可以激活创建好的虚拟环境,执行:
local命令和之前的命令区别在于,在 ~/envtest 目录下,会创建一个隐藏文件 .python-version,文件内容只包含一句话 my-env,只要使用终端进入 ~/test 目录,就会自动激活虚拟环境
退出虚拟环境使用下面两个中任意一条命令
3. 删除虚拟环境
随着时间推移,你可能积攒很多虚拟环境,删除虚拟环境可以使用命令
或者直接删除虚拟环境所在的目录
如果是用 git 克隆的,更新则使用git pull命令
或者
Mac用户则使用brew命令
由于 pyenv 把一切都放在 ~/.pyenv 下了,所以Linux下卸载分为两步
- 删除环境变量
- 执行:或者
Mac用户卸载需要使用brew命令:
本文参考了官方文档并进行了修改,文档可以在源码github地址中找到
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/13571.html