zoukankan      html  css  js  c++  java
  • Python虚拟环境常用工具使用

    Python虚拟环境工具

    我们在使用Python开发的时候会使用pip来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本或不同的第三方包,Python的解决方案就是虚拟环境。顾名思义,虚拟环境就是虚拟出来的一个隔离的Python环境,每个项目都可以有自己的虚拟环境,用pip安装各自的第三方包,不同项目之间也不会存在冲突。创建虚拟环境需要一些工具。

    virtualenv

    virtualenv是一个创建隔绝的python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用python工程所需的包。

    安装工具

    $python -m pip install virtualenv -i https://pypi.douban.com/simple
    Installing collected packages: virtualenv
    Successfully installed virtualenv-16.7.9
    

    创建虚拟环境

    $cd c:allenv # 假设要创建的虚拟环境目录都保存在c:allenv路径下
    $virtualenv -p python --no-site-packages env1 
    # -p 指定python解释器,前提是配置了系统环境变量,通过python能查找到python安装的路径
    # --no-site-packages 指定是完全纯净的环境,不从本地python的实体环境中继承任何第三方模块
    # --system-site-packages 从本地的python实体环境中继承所有已安装的第三方模块
    c:allenv>virtualenv -p python --no-site-packages env1
    Running virtualenv with interpreter D:ProgramPython37python.exe
    Already using interpreter D:ProgramPython37python.exe
    Using base prefix 'D:\Program\Python37'
    New python executable in c:allenvenv1Scriptspython.exe
    Installing setuptools, pip, wheel...
    done.
    

    激活虚拟环境

    c:allenv>cd env1/Scripts # 进入虚拟脚本目录
    c:allenvenv1Scripts>activate # 通过activate命令激活虚拟环境
    (env1) c:allenvenv1Scripts> # 在这里就和实体python环境一样,可以何意的安装第三方模块
    

    使用虚拟环境

    (env1) c:allenvenv1Scripts>pip install django==1.11.16 -i https://p
    ypi.douban.com/simple #安装django包
    (env1) c:allenvenv1Scripts>pip list # 查看虚拟环境安装的模块,可以退出虚拟环境查看实体环境会不一样
    Package    Version
    ---------- -------
    Django     1.11.16
    pip        19.3.1
    pytz       2019.3
    setuptools 44.0.0
    wheel      0.33.6
    

    退出虚拟环境

    (env1) c:allenvenv1Scripts>deactivate # 通过deactivate命令退出虚拟环境
    c:allenv>pip list # 退出虚拟环境之后且要返回到上一个目录,查看已安装的模块并没有虚拟环境中的django
    Package    Version
    ---------- -------
    pip        19.3.1
    setuptools 41.2.0
    virtualenv 16.7.9
    

    virtualenvwrapper(linux)

    virtualenvwrapper 是一个基于virtualenv之上的工具,它将所有的虚拟环境统一管理。

    安装工具

    $python -m pip install virtualenvwrapper -i https://pypi.douban.com/simple
    Looking in indexes: https://pypi.douban.com/simple
    Collecting virtualenvwrapper
    Installing collected packages: virtualenv-clone, six, pbr, stevedore, virtualenv
    wrapper
    Running setup.py install for virtualenvwrapper ... done
    Successfully installed pbr-5.4.4 six-1.13.0 stevedore-1.31.0 virtualenv-clone-0.5.3 virtualenvwrapper-4.8.4
    # 1.配置virtualenvwrapper的环境变量,每次开机就启动
    $vim ~/.bashrc
    # 2.写入以下几行代码export 和source一样都是读取linux shell变量的命令
    export WORKON_HOME=~/Envs   # 设置virtualenv的统一管理目录
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   # 添加virtualenvwrapper的参数,生成干净隔绝的环境
    export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3     # 指定python解释器
    source /opt/python36/bin/virtualenvwrapper.sh   # 这一步才是真正使用工具的步骤,执行virtualenvwrapper安装脚本
    # 3.退出当前会话,重新登录linux
    $logout
    # 4.重新登录,查看是否可以使用virtualenvwrapper
    
    $python -m pip install virtualenvwrapper-win -i https://pypi.douban.com/simple # windows下的话安装"virtualenvwrapper-win"这个包
    

    创建虚拟环境

    $mkvirtualenv  django115 # 创建名称为django115的虚拟环境
    $mkvirtualenv  django2 # 创建名称为django2的虚拟环境
    # --python 指定python的版本创建虚拟环境
    

    激活/切换虚拟环境

    $workon  django2 # 切换到django2的虚拟环境
    $workon  django115 # 切换到django115的虚拟环境
    $workon # 也可以查看当前的所有虚拟环境
    

    进入虚拟环境的家目录

    $cdsitepackages
    

    退出虚拟环境

    $deactivate
    

    删除虚拟环境

    $rmvirtualenv   django115
    

    显示所有的虚拟环境

    $lsvirtualenv
    

    pipenv

    pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。Pipfile和pipenv本来都是Kenneth Reitz的个人项目,后来贡献给了pypa组织。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。

    Pipfile的基本理念是:

    Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
    一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分。
    提供版本锁支持,存为 Pipfile.lock。
    click是Flask作者 Armin Ronacher 写的命令行库,现在Flask已经集成了它。

    接下来,我们看看怎么使用它吧

    安装工具

    $python -m pip install pipenv -i https://pypi.douban.com/simple
    Installing collected packages: virtualenv-clone, certifi, pipenv
    Successfully installed certifi-2019.11.28 pipenv-2018.11.26 virtualenv-clone-0.5.3
    

    创建虚拟环境

    $cd allenvenv2
    $pipenv install # 使用本地默认版本python创建虚拟环境
    $pipenv --python 3.7 # 指定用python 3.7版本创建虚拟环境
    $pipenv --python 3.7
    Creating a virtualenv for this project…
    Pipfile: C:allenvenv2Pipfile
    Using D:/Program/Python37/python.exe (3.7.6) to create virtualenv…
    [    ] Creating virtual environment...
    

    激活虚拟环境

    $pipenv shell
    

    使用虚拟环境

    (env2-bSoKIDGr) c:allenvenv2$pipenv install django==1.11.16 # 安装指定版本的第三方模块
    $pipenv install flask # 安装不指定版本的第三方模块
    $pipenv install pytest --dev # 只安装在开发环境才使用的包
    $pipenv lock #把当前环境的模块lock住, 它会更新Pipfile.lock文件,该文件是用于生产环境的,你永远不应该编辑它
    $pipenv install --ignore-pipfile # 创建和开发环境一样的环境咯,Pipfile.lock里记录了所有包和子依赖包的确切版本
    $pipenv install --dev # 要在另一个开发环境做开发,则将代码和Pipfile复制过去,运行此命令
    $pipenv --where # 显示目录信息
    $pipenv --venv # 显示虚拟环境信息
    $pipenv --py # 显示python解释器信息
    $pipenv graph # 查看目前安装的库及其依赖
    $pipenv check # 检查安全漏洞
    $pipenv uninstall --all # 卸载全部包并从pipfile中移除
    $pipenv uninstall package_name # 卸载指定包并从pipfile中移除
    

    创建其他工具建立的虚拟环境

    $pip freeze > requirements.txt # 首先打开之前的项目,将之前项目的虚拟环境导出到requirements.txt文件
    $pipenv install -r requirements.txt # 将requirements.txt文件粘贴到到要创建环境的目录
    

    退出虚拟环境

    $exit
    
  • 相关阅读:
    java学习--工具类学习之Arrays(1)
    509. 斐波那契数
    572. 另一个树的子树
    cmd中的标准文件重定向
    ng正则使用(持续更新)
    MySQL基准测试
    mysql_connect 弃用之后使用mysqli替换需要注意事项
    数据迁移到rds时候犯下的低级错误
    MySQL 架构与历史
    mysql中涉及到钱的字段如何设计
  • 原文地址:https://www.cnblogs.com/xiaodou-cao/p/12441402.html
Copyright © 2011-2022 走看看