• 虚拟环境vitualenv的使用


    在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;

    亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。

    此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。

    1、安装pip3  install  virtualenv

    2、命令行创建虚拟环境

    2.1创建存放虚拟环境的文件夹(我的是想放在H:envs)

    2.2查看virtualenv有哪些命令

     

     2.3 创建一个env1的虚拟、干净的Python环境

     2.4激活创建的env1虚拟环境

     

     

     2.5 测试刚刚激活的env1环境

       新安装的Python环境是很干净的,没有django等模块

     2.6在env1环境安装django1.9版本

     2.7退出虚拟环境env1

     3、Pycharm创建虚拟环境

    3.1打开设置

     3.2设置虚拟环境名称、路径;进行创建

     3.3查看是否成功

     

     4、Linux下安装、配置virtualenv

    4.1下载

    #指定清华源下载pip的包
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
    #升级pip工具
    pip3 install --upgrade pip

    4.2安装、配置

    1.安装virtualenv
    pip3 install virtualenv
    设置软连接 ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
    2.创建目录 mkdir Myproject cd Myproject 3.创建独立运行环境-命名 virtualenv --no-site-packages --python=python3 venv#得到独立第三方包的环境,并且指定解释器是python3 4.进入虚拟环境 source venv/bin/activate#此时进入虚拟环境(venv)Myproject 5.安装第三方包 (venv)Myproject: pip3 install django==1.9.8 #此时pip的包都会安装到venv环境下,venv是针对Myproject创建的 6.退出venv环境 deactivate命令 7. virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入
    一个virtualenv环境时,
    virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

    4.3确保开发环境的一致性

    1.假设我们在本地开发环境,准备好了项目+依赖包环境
    2.现在需要将项目上传至服务器,上线发布
    3.那么就要保证服务器的python环境一致性

     

    解决方案:
    1.通过命令保证环境的一致性,导出当前python环境的包
    pip3 freeze > requirements.txt   
    
    这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
    可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
    

    requirements.txt文件格式:

    
    
    requests==1.2.0 
    
    
    Flask==0.10.1
    2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖 pip3 install -r requirements.txt

     pip批量安装package
        将需要安装的包保存在aa.txt中
        cd到aa.txt所在目录,运行:
       $ pip install -r aa.txt

     
    pip批量卸载package
        将需要卸载的包保存在aa.txt中
        cd到aa.txt所在目录,运行:
       $ pip uninstall -r aa.txt
    备注:需要卸载的包可从pip freeze得到

    $ pip freeze                   # 显示已安装的包名及版本
    $ pip freeze > aa.txt          # 将已安装的包名及版本写入aa.txt
     

    5、虚拟环境之virtualenvwrapper

    virtualenv 的一个最大的缺点就是:

    每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

    并且还有可能你忘记了虚拟环境放在哪。。。

    • 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
    • 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤

    5.1:安装virtualenvwrapper

    pip3 install virtualenvwrapper

    5.2设置Linux的环境变量,每次启动就加载virtualenvwrapper

    把下面两行代码添加到 ~/.bashrc文件中
    打开文件
    vim ~/.bashrc
    写入以下两行代码
    export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的参数,生成干净隔绝的环境
    export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3     #指定python解释器
    source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
    读取文件,使得生效,此时已经可以使用virtalenvwrapper
    source ~/.bashrc

    5.3基本使用virtualenvwrapper

    创建一个虚拟环境:
    $ mkvirtualenv my_django115
    这会在 ~/Envs 中创建 my_django115 文件夹。
    
    在虚拟环境上工作:激活虚拟环境my_django115
    $ workon my_django115
    
    
    再创建一个新的虚拟环境
    $ mkvirtualenv my_django2
    
    virtualenvwrapper 提供环境名字的tab补全功能。
    当有很多环境, 并且很难记住它们的名字时,这就显得很有用。
    
    workon还可以任意停止你当前的环境,可以在多个虚拟环境中来回切换
    workon django1.15
    
    workon django2.0
    
    也可以手动停止虚拟环境
    deactivate
    
    删除虚拟环境,需要先退出虚拟环境
    rmvirtualenv my_django115

    5.4常用其他命令

    lsvirtualenv
    列举所有的环境。
    cdvirtualenv
    导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
    cdsitepackages
    和上面的类似,但是是直接进入到 site-packages 目录中。
    lssitepackages
    显示 site-packages 目录中的内容。
    
    完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

     windows下安装:

     冻结环境

    所谓 冻结(freeze)

     环境,就是将当前环境的软件包等固定下来:
    1
    pip freeze >packages.txt  # 安装包列表保存到文件packages.txt中 

     重建环境

    重建(rebuild)

     环境就是在部署的时候,在生产环境安装好对应版本的软件包,不要出现版本兼容等问题:
    1
    pip install -r packages.txt

    配合pip,可以批量安装对应版本的软件包,快速重建环境,完成部署

    •  (3)、虚拟环境默认安装位置:
    •      C:UsersAdministratorEnvs
    •  (4)、改变虚拟环境安装位置

    5.5图解

    6.异常情况

    6.1假如source ~/.bashrc时,提示以下错误

    $ source ~/.bashrc
    >> -bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory
    

    【原因】
    .bashrc文件中的virtualenvwrapper.sh所在目录错误。

    【解决方案】
    ①查找virtualenvwrapper.sh所在目录

    $ find / -name "virtualenvwrapper.sh"
    >> /usr/local/python3/bin/virtualenvwrapper.sh
    

    ②把.bashrc文件的virtualenvwrapper.sh目录更改为实际所在目录

    source /usr/local/python3/bin/virtualenvwrapper.sh    # virtualenvwrapper.sh实际所在目录
    

    6.2假如创建虚拟环境时,提示以下错误

    $ mkvirtualenv my_env
    >> ERROR: virtualenvwrapper could not find virtualenv in your path
    

    【解决方案】
    ①查找virtualenv所在目录

    $ find / -name "virtualenv"
    >> /usr/local/python3/bin/virtualenv
    

    ②创建软链接

    $  ln -s /usr/local/python3/bin/virtualenv /usr/local/bin/virtualenv
    

  • 相关阅读:
    使用Debug Diagnostic Tool排除内存泄漏故障
    Windows下实现应用程序看门狗软件
    linux教程:[3]配置Zookeeper开机启动
    设置zookeeper为systemctl守护进程
    Dr. Memory Quickstart Instructions in Chinese
    Windows Server2008R2,ServerWin2012 R2设置自动登录注册表配置
    Nacos 解读:服务发现客户端
    FeignClient注解及参数
    MySQL自动设置create_time和update_time
    LocalDate、LocalTime、LocalDateTime 和mysql交互
  • 原文地址:https://www.cnblogs.com/yunwangjun-python-520/p/10807315.html
Copyright © 2020-2023  润新知