python环境神器virtualen

发布时间:2019-10-15 09:04:44编辑:auto阅读(1914)

    virtualenv与virtualenvwrapper

    当涉及到python项目开发时为了不污染全局环境,通常都会使用环境隔离管理工具virtualenvvirtualenvwrapper

    virtualenv是在项目底下执行生成venv环境目录以此来进行管理,这非常适合使用诸如pycharm这种集成环境配置的开发工具;那么当通过shell来运行virtualenv时便会显得非常麻烦,因为每次shell关闭再打开后都需要重新配置环境参数。

    virtualenvwrapper是将所有的python项目虚拟环境环境都存放在一起,在使用shell配合小型开发工具就会非常方便。

    virtualenvwrapper安装配置(MAC)

    1. 使用pip3安装

      $ sudo pip3 install virtualenvwrapper
    2. 新建存放环境目录(笔者目录为Envs并放在Home下)

      $ mkdir -p ~/Envs
    3. 配置virtualenvwrapper环境(使用python3)

      i. 打开bash_profile,执行vim ~/.bash_profile并写入

      # 设置virtualenvwrapper
      export WORKON_HOME=~/Envs
      export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
      # 打开终端自动启用
      source /usr/local/bin/virtualenvwrapper.sh

      ii. 打开.zshrc,执行vim ~/.zshrc并写入(如果有安装item2oh-my-zsh)

      # 设置virtualenvwrapper
      export WORKON_HOME=~/Envs
      export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
      # 打开终端自动启用
      source /usr/local/bin/virtualenvwrapper.sh
    4. 使配置生效

      $ source ~/.bash_profile
      $ source ~/.zshrc

    virtualenvwrapper 使用

    1. 新建虚拟环境test并指定python版本python3

      $ mkvirtualenv test --python=python3

      执行lsvirtualenv指令查看所有环境,环境test位于~/Envs/test

      $ lsvirtualenv
      test
      ====
    2. 在项目底下激活虚拟环境test

      workon test
    3. 其他指令

      ## 退出环境test
      deactivate
      ## 删除环境test
      rmvirtualenv test
      ## 更多指令可以在shell中输入virtualenv回车会有提示

    virtualenvwrapper设置环境变量

    当我们使用框架时经常需要执行pip install或者 export环境变量等额外的操作,这时就需要使用postactivate等钩子文件(当然钩子文件还有很多,具体感兴趣可以去查看官方文档)。

    举个栗子:

    想在test虚拟环境激活后设置环境变量

    1. 打开testpostactivate钩子文件vim ~/Envs/test/bin/postactivate

      #!/bin/zsh
      # This hook is sourced after this virtualenv is activated.
      
      # 在当前会话加入环境变量
      export ENV=dev
    2. 这时当执行workon test 激活虚拟环境后便会执行postactivate将项目环境变量Env设置为dev
    3. postactivate 中还可以执行诸如pip install -r requirements.txtpip install -e confshell 操作

    到目前为止基本的virtualenvwrapper使用就介绍完了

    原文地址:http://www.fidding.me/article/71

    happy coding!

关键字