Ywc's blog

Python虚拟环境管理

Word count: 1.3kReading time: 5 min
2019/11/11

Unix

Unix系统下pyenv安装与使用

安装pyenv

1
2
3
4
5
6
7
8
git clone https://github.com/yyuu/pyenv.git ~/.pyenv     #使用 git 把 pyenv 下载到家目录
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc #然后需要修改环境变量,使用 Bash Shell 的输入

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(pyenv init -)"' >> ~/.bashrc #最后添加 pyenv init

exec $SHELL -l #输入命令重启 Shell,然后就可以重启pyenv

查看pyenv可安装的版本列表

1
pyenv install --list

安装指定的python版本

以安装python 3.4.1为例

1
pyenv install 3.4.1

卸载指定的python版本

1
pyenv uninstall x.x.x

eg:卸载3.7.1

1
pyenv uninstall 3.7.1

python版本查看

查看当前已经安装了的python版本:

1
pyenv versions

输出结果如下:

1
2
3
4
5
6
$ pyenv versions               
system
3.8.0
* 3.8.1 (set by /Users/v1zkra/.pyenv/version)
3.8.1/envs/env381
env381

system是指系统中的python版本
*表示当前环境所处的python版本

python版本切换

全局版本切换

1
pyenv global anaconda-2.4.0

查看现在的python版本:pyenv versions

1
2
3
4
5
6
$ pyenv versions
system
* 3.8.0 (set by /Users/v1zkra/.pyenv/version)
3.8.1
3.8.1/envs/env381
env381

局部环境的切换

在test文件夹下希望切换到python3.4.1:

1
pyenv local python3.4.1

使用pipenv管理pip

安装:pip install pipenv

pipenv常用命令:

  • pipenv --python 3.6 创建虚拟环境,pipenv 会自动扫描系统寻找合适的版本信息,如果找不到的话,同时又安装了 pyenv 的话,则会自动调用 pyenv 下载对应版本的 python, 否则会报错。
  • pipenv shell 进入虚拟环境
  • pipenv install urllib3 安装虚拟环境或者第三方库,也可以指定版本pipenv install urllib3==1.22
  • pipenv uninstall urllib3 卸载一个库,全部卸载使用pipenv uninstall –all
  • pipenv update urllib3 更新指定包,不带参数pipenv update会卸载当前所有的包,并安装它们的最新版本
  • pipenv --where 查看项目根目录
  • pipenv --venv 查看虚拟环境目录
  • pipenv run 在虚拟环境中运行命令
  • pipenv check 检查安全漏洞
  • pipenv graph 显示当前依赖关系图信息
  • pipenv lock 锁定并生成Pipfile.lock文件
  • pipenv open 在编辑器中查看一个库

python virtualenv创建纯净虚拟环境

虽然直接安装pip安装virtualenv也行,但是通过pyenv插件的形式安装virtualenv的虚拟环境更加方便,因为之后的操作会比较方便。

安装插件pyenv-virtualenv

pyenv virtualenv是pyenv的插件,为UNIX系统上的Python virtualenvs提供pyenv virtualenv命令。

1
2
3
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile

这个插件将安装在主文件夹下的.pyenv文件夹中。

创建一个新的虚拟环境

1
pyenv virtualenv 2.7.1 env271

再需要创建虚拟环境的文件夹下创建虚拟环境。

这条命令在本机上创建了一个名为env271的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/

1
注意,命令中的 ‘2.7.1’ 必须是一个安装前面步骤已经安装好的python版本, 否则会出错。

然后可以继续通过 pyenv versions 命令来查看当前的虚拟环境。

切换和使用新的python虚拟环境

创建新的虚拟环境

1
pyenv activate env271

这样就能切换为这个版本的虚拟环境。通过输入python查看现在版本,可以发现处于虚拟环境下了。
下面基本上你就可以在这个虚拟环境里面为所欲为了 :) 再也不用担心系统路径被搞乱的问题了
如果要切换回系统环境, 运行这个命令即可

1
pyenv deactivate

删除虚拟环境

以删除上面新创建的env271环境为例:

  1. 直接删除它所在的目录:

    1
    rm -rf ~/.pyenv/versions/env271/
  2. 直接卸载

    1
    pyenv uninstall env271

    Ubuntu

    https://zhuanlan.zhihu.com/p/138504729

一些指令

  • 创建虚拟环境

    1
    2
    3
    4
    5
    6
    $ mkvirtualenv ENV
    $ ls -al $HOME/.virtualenvs #查看创建好的虚拟环境
    total 12
    drwxr-xr-x 3 root 4096 Apr 27 18:25 .
    dr-xr-x---. 17 root 4096 Apr 27 18:25 ..
    drwxr-xr-x 5 root 4096 Apr 27 18:25 ENV
  • 创建指定的python版本的虚拟环境

    1
    $ mkvirtualenv env  --python=python2.7
  • 激活虚拟环境:workon ENV

    1
    2
    $ workon ENV
    (ENV) $
  • 退出虚拟环境 (同virtualenv一样)
    deactivate

  • 导航到当前激活的虚拟环境的目录中

    1
    2
    3
    4
    5
    $ pwd
    /home/python
    $ cdvirtualenv
    $ pwd
    /home/python/.virtualenvs/ENV
  • 列出所有虚拟环境
    workonlsvirtualenv都可以列举出已创建的所有虚拟环境

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ workon
    ENV2.7
    ENV
    $ lsvirtualenv
    ENV2.7
    ======
    /usr/bin/python: No module named virtualenvwrapper

    ENV
    ===
    /usr/bin/python: No module named virtualenvwrapper
  • 删除虚拟环境:rmrmvirtualenv

    1
    2
    3
    4
    5
    6
    $ workon 
    ENV2.7
    ENV
    $ rmvirtualenv ENV2.7
    $ workon
    ENV

Reference

Python虚拟环境最全教程,看这篇就够了!

Python多版本切换工具-Pyenv\virtualenv及Anaconda科学计算环境的配置

pipenv与pyenv、pyenv-virtualenv的关系和使用

CATALOG
  1. 1. Unix
    1. 1.1. Unix系统下pyenv安装与使用
      1. 1.1.1. 安装pyenv
      2. 1.1.2. 查看pyenv可安装的版本列表
      3. 1.1.3. 安装指定的python版本
      4. 1.1.4. 卸载指定的python版本
      5. 1.1.5. python版本查看
      6. 1.1.6. python版本切换
        1. 1.1.6.1. 全局版本切换
        2. 1.1.6.2. 局部环境的切换
    2. 1.2. 使用pipenv管理pip
    3. 1.3. python virtualenv创建纯净虚拟环境
      1. 1.3.1. 安装插件pyenv-virtualenv
      2. 1.3.2. 创建一个新的虚拟环境
    4. 1.4. 切换和使用新的python虚拟环境
      1. 1.4.1. 创建新的虚拟环境
      2. 1.4.2. 删除虚拟环境
  2. 2. Ubuntu
    1. 2.1. 一些指令
  3. 3. Reference