iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 第十二章 virtuale
  • 617
分享到

Python 第十二章 virtuale

十二章Pythonvirtuale 2023-01-31 02:01:43 617人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

virtualenv在开发python应用程序的时候,系统安装的python3只有一个版本3.4,所有第三方包都会被pip安装到Python3的site-packages目录下。如果我们同时开发多个Python程序,那么这些应用程序会公用一

virtualenv

开发python应用程序的时候,系统安装的python3只有一个版本3.4,所有第三方包都会被pip安装到Python3的site-packages目录下。

如果我们同时开发多个Python程序,那么这些应用程序会公用一个Python,就是安装在系统的Python3,如果A应用需要jinja2.7,而B应用程序需要jinja2.6怎么办?

这种情况下,每个应用可能需要独立的一套Python环境。virtualenv就是用来为应用创建一个“隔离”的Python应用环境。

首先用pip安装virtualenv:
#pip install virtualenv

然后我们假定我们要开发一个新项目,需要一套独立的Python运行环境,可以这么做:
第一步,创建目录:
root #mkdir myproject

root #cd myproject/

第二步,创建一个独立的Python运行环境,命名为venv:
myproject root#virtualenv --no-site-packages venv

Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.

命令virtualenv就可以创建一个独立的Python环境,我们还加上了参数--no-site-packages,这样,已经安装到系统的Python中的所有第三方包都不会复制过来,这样,我们就得到一个不带任何第三方包的“干净”Python运行环境。

新建的Python环境被放在当前目录下的venv目录。有了venv这个Python环境,可以用source进入这个环境:

myproject#source venv/bin/activate

(venv) myproject#

注意命令提示符变了,有个(venv)前缀,表示当前环境是一个venv的Python环境。

下面正常安装第三方包,并运行python命令:
(venv) myproject#pip install jinja2

(venv)Mac:myproject michael$ pip install jinja2
...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject michael$ python myapp.py
...

在venv环境下,用pip安装到venv这个环境下,系统Python不受任何影响。也就是说venv环境专门是为myproject这个应用创建的。

退出当前环境使用deactivate命令:
(venv) myproject#deactivate

myproject#

此时就回到了正常的环境,现在pip和python均是在系统Python的环境下运行。

完全可以针对不同的应用创建各自的Python运行环境,这样就可以对每个应用的环境进行隔离。

virtualenv是如何创建独立的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv环境,用命令source venv/bin/activate进入一个birtualenv环境时,virtualenv会修改相关变量,让命令python和pip均指向当前的virtualenv环境。


小结:
virtualenv为应用程序提供了隔离的Python环境,解决了不同应用多版本之间的冲突问题。


--结束END--

本文标题: Python 第十二章 virtuale

本文链接: http://www.lsjlt.com/news/185263.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 第十二章 virtuale
    virtualenv在开发Python应用程序的时候,系统安装的Python3只有一个版本3.4,所有第三方包都会被pip安装到python3的site-packages目录下。如果我们同时开发多个Python程序,那么这些应用程序会公用一...
    99+
    2023-01-31
    十二章 Python virtuale
  • 第十二章 Python文件操作
    12.1 open()open()函数作用是打开文件,返回一个文件对象。用法格式:open(name[, mode[, buffering[,encoding]]]) -> file objectname 文件名mode 模式,比如以...
    99+
    2023-01-31
    十二章 操作 文件
  • python核心编程2 第十二章 练习
    12–5. 使用 __import__().(a) 使用 __import__ 把一个模块导入到你的名称空间。 你最后使用了什么样的语法 (b) 和上边相同, 使用 __import__() 从指定模块导入特定的名字。 1 module...
    99+
    2023-01-30
    十二章 核心 python
  • Python 学习第二章
    本章内容 数据类型 数据运算 表达式 if ...else 语句 表达式 for 循环 表达式 while 循环 一、数据类型    在内存中存储的数据可以有多种类型。    在 Python 有五个标准的数据类型 Numbers ...
    99+
    2023-01-30
    第二章 Python
  • python第十二周:MySql
    MySql数据库 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增...
    99+
    2023-01-30
    python MySql
  • 第十七章 Python网络编程
    Socket简介在网络上的两个程序通过一个双向的通信连接实现数据的交换,这个链接的一端称为一个Socket(套接字),用于描述IP地址和端口。建立网络通信连接至少要一对端口号(Socket),Socket本质是编程接口(API),对TCP/...
    99+
    2023-01-31
    十七章 网络编程 Python
  • Android 第十四章 FragmentContainerView
    FragmentContainerView extends FrameLayoutFragmentContainerView是专门为Fragments设计的自定义布局。它扩展了FrameLayout,因此它可以可靠地处理Fragment 事...
    99+
    2023-08-17
    android android studio ide
  • 第二章:Swagger2
    目录 背景介绍 什么是Swagger2 常用注解 SpringBoot整合Swagger2 生产环境下屏蔽Swagger2 修改Swagger2配置类 修改application.yml 使用maven package打包测试 运行测试 ...
    99+
    2023-10-08
    java spring boot mybatis 文档资料
  • 我的python学习--第十二天(二)
    Python异常处理  Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员,所有异常都从基类Exception继承,而且都在excepti...
    99+
    2023-01-31
    二天 python
  • 《JavaSE-第十七章》之LinkedList
    前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 刷题求职神器 共勉:ta...
    99+
    2023-09-07
    java 数据结构 开发语言
  • 《python核心教程2》第十章 练习
    10-6.改进的open()。为内建的open()函数创建一个封装。使得成功打开文件后,返回文件句柄:若打开失败则返回给调用者None, 而不是生成一个异常。这样你打开文件就不需要额外的异常处理语句。 1 def openfile(f...
    99+
    2023-01-30
    第十章 核心 教程
  • python核心编程2 第十章 练习
    10-6.改进的open()。为内建的open()函数创建一个封装。使得成功打开文件后,返回文件句柄:若打开失败则返回给调用者None, 而不是生成一个异常。这样你打开文件就不需要额外的异常处理语句。 1 def openfile(f...
    99+
    2023-01-30
    第十章 核心 python
  • Python学习系列 ( 第二章):Py
    一:Python的用户输入:  1.1 Python的输入 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author:FlyFish #import getpass _username...
    99+
    2023-01-31
    第二章 系列 Python
  • 学习python的第二十天(dateti
    1.datetime模块(用于修改日期) import datetime print(datetime.datetime.now(),type(datetime.datetime.now())) 2019-06-10 19:37:55....
    99+
    2023-01-31
    十天 python dateti
  • Python学习笔记—第二章—IPyth
    书目:Python(Unix和Linux系统管理指南)学习日期:20130807知识点总结:安装IPython:源码安装:tar zxvf ipython-0.13.2.tar.gz python setup.py install...
    99+
    2023-01-31
    第二章 学习笔记 Python
  • python列表和元组(第二章)
    1)列表和元组 python包涵6中内建的序列(列表,元组,字符串,Unicode字符串,buffer对象和xrange对象),本章讲常用的2中类型:列表和元组。 列表和元组的区别:列表可以修改,元组则不能。     2)索引 >&...
    99+
    2023-01-31
    第二章 列表 python
  • SEAM IN ACTION 第二章
    Putting seam-gen to workThis chapter covers■ Setting up a project with seam-gen■ Reverse engineering a database schema■ ...
    99+
    2023-06-03
  • 流畅的python读书笔记-第十章-继
    推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架。——Alan Kay 子类化内置类型很麻烦 (如 list 或 dict)) ,别搞这种 直接子类化内置类型(如 dict、list 或 str)容易出错,因为内置类型的 方法...
    99+
    2023-01-31
    第十章 流畅 读书笔记
  • 第十五章 Python多进程与多线程
    15.1 multiprocessingmultiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器。避免了GIL(全局解释锁)对资源的影响。有以下常用类:类描述Process(group=None, targe...
    99+
    2023-01-31
    十五章 多线程 进程
  • 第二十五天- 包
      # 包:# 定义:# 包是⼀种通过'模块名'来组织python模块名称空间的⽅式.我们创建的每个⽂件夹都可# 称之为包.但要注意,在python2中规定.包内必须存在 __init__.py⽂件.在python3中可以# 省略,但是最...
    99+
    2023-01-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作