对Python 两大环境管理神器 pyenv 和 virtualenv详解

作者:qhh0205 时间:2022-05-02 11:27:40 

简介

pyenv 是一个开源的 Python 版本管理工具,可以轻松地给系统安装任意 Python 版本,想玩哪个版本,瞬间就可以切换。有了 pyenv,我们不需要再为系统多版本 Python 共存问题而发愁,也不用为手动编译安装其他 Python 版本而浪费时间,只需要执行一条简单的命令就可以切换并使用任何其他版本,该工具真正地做到了开箱即用,简单实用。

virtualenv 是一个用来创建完全隔离的 Python 虚拟环境的工具,可以为每个项目工程创建一套独立的 Python 环境,从而可以解决不同工程对 Python 包,或者版本的依赖问题。假如有 A 和 B 两个工程,A 工程代码要跑起来需要 requests 1.18.4,而 B 工程跑起来需要 requests 2.18.4,这样在一个系统中就无法满足两个工程同时运行问题了。最好的解决办法是用 virtualenv 给每个工程创建一个完全隔离的 Python 虚拟环境,给每个虚拟环境安装相应版本的包,让程序使用对应的虚拟环境运行即可。这样既不影响系统 Python 环境,也能保证任何版本的 Python 程序可以在同一系统中运行。

最佳实践:使用 pyenv 安装任何版本的 Python,然后用 virtualenv 创建虚拟环境时指定需要的 Python 版本路径,这样就可以创建任何版本的虚拟环境,这样的实践真是极好的!

pyenv 的安装及使用

1. 安装

将 pyenv 安装到 ~/.pyenv 目录(当然你可以安装到任意其他路径)


git clone https://github.com/yyuu/pyenv.git ~/.pyenv

配置环境变量(我的 Shell 是 zsh,如果是 bash,请添加到 ~/.bashrc)


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

添加 pyenv 初始化(我的 Shell 是 zsh,如果是 bash,请添加到 ~/.bashrc)


echo 'eval "$(pyenv init -)"' >> ~/.zshrc

使当前 Shell 配置生效,完成安装


exec $SHELL
source ~/.zshrc

2. 使用

查看有哪些 Python 版本可以安装


pyenv install --list

安装某个 Python 版本


pyenv install -v 3.6.4

查看当前 Python 版本情况(* 表示系统当前的 Python 版本,system表示系统初始版本)


$ pyenv versions
system
2.6.7
* 3.6.4 (set by /Users/haohao/.pyenv/version)

切换 Python 版本(切换之后查看当前版本)


$ pyenv global 3.6.4
$ pyenv versions
system
* 3.6.4 (set by /Users/haohao/.pyenv/version)
$ python -V
Python 3.6.4

卸载某个 Python 版本


pyenv uninstall 3.6.4

virtualenv 的安装及使用

1. 安装


sudo pip install virtualenv

2. 使用

下面我们使用 virtualenv 创建一个完全隔离的 Python 虚拟环境:

1.新建一个目录(一般用来用作工程路径)


$ mkdir myproject

2.进入目录创建一个完全独立干净的虚拟环境

如果 virtualenv 后面不加任何参数,那么默认创建的虚拟环境的 Python 版本是系统当前版本,如果要创建其他版本,可以使用 -p 参数指定其他版本的 python 可执行文件路径。可执行文件可以在上一步安装的 pyenv 的 ~/.pyenv/versions 路径找到,该路径是 pyenv 管理的所有 Python 版本路径。


# 使用系统当前的 Python 版本创建虚拟环境
$ virtualenv venv
New python executable in /Users/haohao/PycharmProjects/myproject/venv/bin/python
# 创建虚拟环境时指定 Python 版本
$ virtualenv -p ~/.pyenv/versions/2.6.7/bin/python venv
Running virtualenv with interpreter /Users/haohao/.pyenv/versions/2.6.7/bin/python
New python executable in /Users/haohao/PycharmProjects/myproject/venv/bin/python
Installing setuptools<37, pip, wheel<0.30...done.

3.激活创建的虚拟环境并使用

可以看出当前虚拟环境版本已经是 Python 2.6.7 了,而且所在路径确实是在上一步创建的虚拟环境路径。接下来使用 pip 安装的任何包都会安装在虚拟环境目录里面,不会安装在系统标准目录,从而保证当前环境是绝对干净的,对于系统是完全隔离的。


$ source venv/bin/activate
$ which python
/Users/haohao/PycharmProjects/myproject/venv/bin/python
$ python -V
Python 2.6.7

4.退出虚拟环境,回到系统版本


$ deactivate

来源:https://blog.csdn.net/qianghaohao/article/details/79681187

标签:Python,pyenv,virtualenv
0
投稿

猜你喜欢

  • 详解npm 配置项registry修改为淘宝镜像

    2024-05-08 09:37:55
  • 浅析python中的分片与截断序列

    2022-05-11 02:31:03
  • Go语言defer与return执行的先后顺序详解

    2024-05-22 10:29:43
  • Chrome插件开发系列一:弹窗终结者开发实战

    2024-04-29 13:42:04
  • PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC

    2023-10-07 08:09:10
  • 浅谈Python响应式类库RxPy

    2021-12-24 12:44:26
  • MySQL乱码问题深层分析

    2009-03-09 14:53:00
  • 10个python爬虫入门实例(小结)

    2021-04-21 01:08:57
  • Python List remove()实例用法详解

    2022-11-24 17:40:18
  • Python可执行文件反编译教程(exe转py)

    2022-05-07 19:37:11
  • 微信公众号开发之获取位置信息php代码

    2023-11-17 06:33:15
  • SQL Server中查询结果超出了查询时间范围解决方法

    2024-01-18 04:05:54
  • 使用Python+Appuim 清理微信的方法

    2021-05-24 12:22:05
  • JS实现点击表头表格自动排序(含数字、字符串、日期)

    2024-05-02 16:16:53
  • yahoo 页面的标签效果

    2024-04-10 10:38:14
  • OpenCV半小时掌握基本操作之模板匹配

    2022-05-03 10:36:41
  • JavaScript深入理解作用域链与闭包详情

    2024-04-19 10:04:07
  • Anaconda中pkgs文件夹及如何清空PKGS

    2022-04-03 00:31:33
  • Python全局变量操作详解

    2022-04-18 04:22:00
  • python深度学习tensorflow入门基础教程示例

    2021-08-25 07:03:08
  • asp之家 网络编程 m.aspxhome.com