美文网首页
Python虚拟环境使用

Python虚拟环境使用

作者: 风吹我已散博客 | 来源:发表于2020-03-01 20:21 被阅读0次
    Python

    一、什么是虚拟环境?

    Python 虚拟环境的主要目的是为了给不同的工程创建互相独立的运行环境。在虚拟环境下,每一个工程都有自己的依赖包,而与其它的工程无关。不同的虚拟环境中同一个包可以有不同的版本。并且,虚拟环境的数量没有限制,我们可以轻松地用 virtualenv 或者 pyenv 等工具来创建多个虚拟环境。

    Python 中有 virtualenvpy venv 虚拟环境,简单使用的话 Python 自带的虚拟环境也是挺好的,自带虚拟环境不需要安装。

    二、虚拟环境是如何工作的?

    在激活虚拟环境后,python 可执行文件的路径变成了当前环境目录下的路径,并且 $PATH 也发生了变化:

    $ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
    $ source env/bin/activate(env) 
    $ echo $PATH/Users/michaelherman/python-virtual-environments/env/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
    

    虚拟环境下的bin目录排在了 $PATH 的最前面。这意味着,用户在命令行中执行 python 的时候,将率先使用虚拟环境下的可执行文件,而不是系统默认的。

    虚拟环境下的 python 可执行文件与系统默认的有什么不同呢?

    事实上,上面提到的 python 可执行文件之间并没有什么不同,但是它们所在的位置至关重要。在Python 启动的时候,它会获取自身所在的路径。然后这一路径(bin的上一级)被设置到 sys.prefixsys.exec_prefix 之中。在搜索第三方的 site-packages 时,搜索目录是 sys.prefix 所指向的路径下的 lib/pythonX.X/site-packages/,其中 X.X 是 Python 的版本。

    Python 是如何找到虚拟环境下的第三方库的呢?

    在前面的例子中,python 文件所在路径为 /Users/michaelherman/python-virtual-environments/env/bin,因此 sys.prefix 会被设为 /Users/michaelherman/python-virtual-environments/env ,从而 site-packages 的路径就变成了 /Users/michaelherman/python-virtual-environments/env/lib/pythonX.X/site-packages 。最后,这一路径被存储在 sys.path 数组中,其中包含着所有包的引用来源。

    三、虚拟环境的安装使用

    py venv 虚拟环境使用

    1. 创建虚拟环境
      命令格式:python -m venv 虚拟环境名称
      进入对应目录后运行:

      python -m venv .venv
      

      虚拟环境就安装到当前目录下的 .venv 目录下了。

    2. 进入虚拟环境

      .venv\scripts\activate.bat        // Windows 下
      source .venv/bin/activate         // Linux 下
      
    3. 退出虚拟环境

      deactivate
      
    4. 虚拟环境中安装库
      刚创建的虚拟环境是干净的,需要自己安装需要的第三方库。如安装PyQt5:

      pip install PyQt5
      

      虚拟环境是独立的,在进入虚拟环境后可用 pip freeze 查看当前环境中安装了那些第三方库。

    virtualenv 虚拟环境使用

    1. 安装 virtualenv
    pip install virtualenv
    
    1. 创建虚拟环境
      命令格式:virtualenv 虚拟环境名称
      进入对应目录后运行:

      virtualenv .venv
      

      虚拟环境就安装到当前目录下的 .venv 目录下了。

    2. 进入虚拟环境

      .venv\scripts\activate.bat        // Windows 下
      source .venv/bin/activate         // Linux 下
      
    3. 退出虚拟环境

      deactivate
      
    4. 虚拟环境中安装库
      刚创建的虚拟环境是干净的,需要自己安装需要的第三方库。如安装PyQt5:

      pip install PyQt5
      

      虚拟环境是独立的,在进入虚拟环境后可用 pip freeze 查看当前环境中安装了那些第三方库。

    四、管理虚拟环境

    通过以上方式即可创建一个虚拟环境,但是这种方式需要记住每一个虚拟环境的目录显得太麻烦,虚拟环境可以通过一些工具来管理,从而使用起来更加方便,这里推荐 virtualenvwrapper

    1. 安装 virtualenvwrapper
      pip install virtualenvwrapper-win         // Windows 下
      pip install virtualenvwrapper             // Linux 下
      
    1. 输入 workon 命令查看是否可用
      // 输出结果如下表示成功
      Pass a name to activate one of the following virtualenvs:
      ==============================================================================
      找不到文件
      
    1. 使用 virtualenvwrapper 创建虚拟环境
      命令格式:mkvirtualenv 虚拟环境名称

      mkvirtualenv testenv
      

      注:Windows 下虚拟环境默认放在 C:\Users\Administrator\Envs 目录中。

    2. 删除虚拟环境
      命令格式:rmvirtualenv 虚拟环境名称

      rmvirtualenv testenv
      
    1. 进入虚拟环境
      命令格式:workon 虚拟环境名称
      workon testenv
      
    1. 退出虚拟环境
      deactivate
      
    1. 常用命令列表
      # 列举所有的虚拟环境
      lsvirtualenv
      
      # 显示所有的虚拟环境包
      lssitepackages
        
      # 导航到当前激活的虚拟环境的目录中,比如说这样就能够浏览它的 site-packages
      cdvirtualenv
      
      # 和上面的类似,但是是直接进入到 site-packages 目录中
      cdsitepackages
      
      # 这会在 ~/Envs 中创建 my_django115 文件夹
      mkvirtualenv my_django115
        
      # 启动/切换虚拟环境
      workon my_django115
      
      # 退出虚拟环境
      deactivate
        
      # 删除虚拟环境
      rmvirtualenv my_django115
      
    1. 修改虚拟环境默认存放路径
      Windows 下:
      找到系统环境变量,添加变量名为 WORKON_HOME 值为指定路径即可。如图(Win):

      WORKON_HOME

      Linux下:
      设置 linux 的用户个人配置文件 ~/.bashrc 添加如下内容:

      WORKON_HOME=~/Envs      #设置virtualenv的目录,以后自动下载的虚拟环境全都放这里
      VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'       #添加virtualenvwrapper的参数,生成干净隔绝的环境
      VIRTUALENVWRAPPER_PYTHON=/opt/python/bin/python3     #指定python解释器的本体(路径为python3安装的目录)
      source /opt/python/bin/virtualenvwrapper.sh         #执行virtualenvwrapper安装脚本(路径需要根据自己的安装位置进行配置)
      

      配置完成后重新登录配置生效。
      如图(图片来源于互联网):

      workon_home_linux

    参考文章:
    1.python虚拟环境的安装和配置-virtualenv,virtualenvwrapper_Mrical的博客-CSDN博客
    2.Linux下的快速配置虚拟环境virtualenvwrapper - 柳帅 - 博客园

    相关文章

      网友评论

          本文标题:Python虚拟环境使用

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