zoukankan      html  css  js  c++  java
  • python配置虚拟环境和包

    概述

    Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。

    这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。

    这个问题的解决方案是,单独给项目创建一个** virtualenv ,一个目录树,其中安装有特定Python版本,以及许多其依赖。 virtualenv **用来为每一个项目创建一套“独立隔离”的Python运行环境。

    Python多解释器环境加上virtualenv创建的多虚拟环境共存在同一操作系统下的情形一般如下图所示:

    核心要点是:

    1. 一个操作系统下,可以有多个“操作系统级别的”Python解释器;
    2. 每个Python解释器有一个指向自己的pip工具,两者一一对应;
    3. 通过virtualenv可以虚拟任何一个“操作系统级别的”Python解释器成为一个“虚拟级别”的解释器;
    4. 每个“虚拟级别”的解释器又拥有自己独立的pip工具和site-packages。

    如果你理解了上面几点,就能明白virtualenv和pip在使用上的区别。

    安装

    以windows操作系统为例,要安装virtualenv,建议直接使用当前环境变量下指定的pip,也就是你操作系统默认的那个python版本所绑定的pip,这样方便命令调用。通常如下:

    pip install virtualenv

    可以在命令行界面中验证安装:where virtualenv

    可以看出,这里的virtualenv是作为一个可执行程序,安装在我系统默认的Python36版本下。而我当前操作系统下其实有3个版本的Python:

    你或许有疑问?那我要虚拟Python2.7的版本怎么办?在2.7下也装一个virtualenv?不需要的!virtualenv可以指定虚拟的Python解释器版本,只要你本地操作系统下安装了这个版本!

    创建虚拟环境

    如果自己手动管理所有的虚拟环境,需要建立一个目录,用来放置所有的虚拟环境。这里:
    mkdir d:Python_virtualenvs,然后运行:
    virtualenv –p c:Python27Python2.exe –-no-site-packages d:Python_virtualenvsfor_django

    -p: 指定你要虚拟的Python版本,这里选择了本地的python2.7

    –-no-site-packages:表示在建立虚拟环境时不将原版本中的第三方库拷贝过来,这样就能获得一个纯净的Python环境。

    d:Python_virtualenvsfor_django:表明在该目录下,建立一个叫做for_django的虚拟环境,这样的命名方式,让你一眼就能看出这个虚拟环境是为谁建立的。

    我们看一眼文件系统中的情况,从截图中可以看出,环境非常干净!


    重要说明

    当前时间2020年2月,virtualenv的最新版本,以20.0.0+为例,已经取消了–-no-site-packages参数,默认直接使用–-no-site-packages模式。有另外一个参数--system-site-packages,作用是可以访问源Python解释器的库,但是要慎用。所以,这里推荐,直接使用默认模式virtualenv -p xxx destination。

    ps:windows下,命令行中执行activate.bat命令,貌似在提示符前方没有环境标识符了。

    使用虚拟环境

    命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令。或者使用绝对路径的方式调用该命令。

    注意命令提示符(for_django),它表示你当前在for_django这个虚拟环境内。现在,你可以当做一个正常的Python环境使用。例如运行python命令,又或者使用pip安装第三方库pip install requests。这些都被限制和绑定在for_django这个虚拟环境内,不会对操作系统下本地的Python版本和其它的虚拟环境产生任何的影响!

    退出虚拟环境

    要退出虚拟环境,只要运行script目录下的deactivate命令就可以了。

    要删除虚拟环境,直接删除虚拟环境所在的目录就可以了,注意不要将其它的环境给删了。但是,删除虚拟环境后,所有以前使用该环境的工程都将受到影响。这点很好理解,所以请确保环境不再有需要再删除


    Pycharm结合virtualenv的使用

    windows下的开发,很多时候使用命令行并不是那么方便,尤其是在Pycharm开发环境下,频繁切换界面也是种负担。实际上Pycharm可以指定解释器,直接将项目的Python解释器设置为你要使用的虚拟环境就行,如下所示:

    在settings中:

    选择Python:

    virtualenv配合pip快速建立开发环境
    virtualenv虚拟环境配合pip的freeze功能,可以一次性快捷的将整个环境下的第三方模块全部记录下来: pip freeze > d: equirements.txt


    对应的,也可以用它一次性通过在别的机器上或虚拟环境里,将文件里列出的第三方库安装起来。只需要使用命令:pip install -r requirements.txt

  • 相关阅读:
    第五周项目4-静态成员应用
    第五周项目3-用多文件组织多个类的程序
    python的wraps函数
    python函数加括号于不加括号的区别
    socket.error: [Errno 10048]
    tensorflow的MNIST教程
    cidr地址段
    mongodb数据库的存储问题
    搭建巡风扫描器
    mongodb的数据库,集合,数据可介绍。
  • 原文地址:https://www.cnblogs.com/fuxiang-li/p/14052759.html
Copyright © 2011-2022 走看看