美文网首页
virtualenv

virtualenv

作者: 小淼不卖萌 | 来源:发表于2018-09-02 04:22 被阅读0次

    1. 背景---管理python开发环境

    • 应对不同的项目开发,需要的python解释器不同,并且需要包的版本可能也不同
    • 为了管理python的解释器环境,保证环境不被污染 不相互干扰

    2. 安装

    # 在安装了pip 条件下
    $ pip install virtualenv
    
    # ubuntu apt 安装
    $ apt install python-virtualenv
    

    3. virtualenv 创建区分python2, python3 环境

    $ virtualenv -p python3 venvpy3
    Running virtualenv with interpreter /usr/local/bin/python3
    Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
    New python executable in /Users/xxx/venvpy3/bin/python3.6
    Also creating executable in /Users/xxx/venvpy3/bin/python
    Installing setuptools, pip, wheel...done.
    
    
    • python3是选择创建的解释器,venvpy3是虚拟环境名称

    4. 激活 & 退出

    激活

    $ source venvpy3/bin/activate
    (venvpy3) $ python
    Python 3.6.5 (default, Jun 17 2018, 12:13:06)
    [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    

    退出

    (venvpy3) $ deactivate
    

    5. 有趣的是

    $ which virtualenv
    /usr/local/bin/virtualenv
    
    $ cat /usr/local/bin/virtualenv
    #!/usr/bin/python
    
    # -*- coding: utf-8 -*-
    import re
    import sys
    
    from virtualenv import main
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
        sys.exit(main())
    

    python2 安装的 virtualenv,执行的是python2的virtualenv,安装的python3的虚拟环境


    6. 移动虚拟环境文件夹后失效的解决方案

    有洁癖移动了下 已创建的virtualenv python2和3环境的文件夹
    移动后激活虚拟环境,python ,python3,pip,pip3环境都选择了系统默认环境下的

    原因

    • source venv/venvpy2/bin/active 后,虽然进入到了虚拟环境,但是virtualenv设置的环境变量有问题,如下(已改好)


      vim active.png
    • 移动前 VIRTUAL_ENV="/Users/xxx/venv"

    • 移动到 ~/venv/venvpy2后,环境变量 VIRTUAL_ENV="/Users/xxx/venv" 找不到正确的目录
      因此执行的python, python3, pip, pip3 命令全按系统环境变量$PATH找的命令执行

    解决方案

    • 如上图修改activate 的 VIRTUAL_ENV为正确的路径(修改后进入虚拟环境下,python可以找到正确的解析器)
    • 修改同目录下的pip, pip2, pip3等(保证可以包可以安装到正确的环境(具体不改会不会有影响未测试))

    相关文章

      网友评论

          本文标题:virtualenv

          本文链接:https://www.haomeiwen.com/subject/cnlywftx.html