Python学习笔记(四十三)virtualenv (创建一套“隔离”的Python运行环境)

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000

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

如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

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

首先,我们用pip安装virtualenv:

$ pip3 install virtualenv

然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

第一步,创建目录:

mkdir myprojectcd myproject
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进入该环境:

venv>Scripts\activate
(venv) F:\APython_DemoCode\cn\Douzi\lesson99_virtualenv\myproject\venv>

注意出现了venv

时间: 2024-10-24 08:05:48

Python学习笔记(四十三)virtualenv (创建一套“隔离”的Python运行环境)的相关文章

【Unity 3D】学习笔记四十三:布料

布料 布料是特殊的组件,它可以变化成任意形状,比如说:随风飘的旗子,窗帘等 创建布料的方法有两种:创建布料对象,在游戏对象中添加布料组件.前者通过hierarchy视图中选择create--cloth即可,创建后,系统会自动将互动布料组件(interactive clothe)与布料渲染组件(cloth renderer)添加值该对象中.后者是在导航菜单中选component--physics--interactive cloth菜单项即可. 交互布料组件是由网格组成的布料,只要用于布料的逻辑判

Python学习笔记__14章 virtualenv

# 这是学习廖雪峰老师python教程的学习笔记 当多个应用所需环境不同,可用virtualenv来为每一个应用创建一套"隔离"的Python运行环境 1.安装 $ pip3 install virtualenv 2.假定我们要开发一个新的项目,需要一套独立的Python运行环境 1)创建目录 mkdir myproject cd myproject/ 2)创建一个独立的Python运行环境,命名为venv virtualenv --no-site-packages venv # vi

Python学习笔记(四)

一.list创建 list 是Python语言中一种内置的数据类型 list 中可以存放不同类型的数据 list = []  #创建一个空列表 list = [1,2,3] #创建一个非空列表,并初始化其元素为1,2,3 二.list长度 使用 len(list_变量) 可以测得list的长度 三.list切片 list = [1,2,3,4,5,6,7,8,9,10] print(list[3:])  #4,5,6,7,8,9,10 print(list[3:5]) #4,5 print(li

Python学习笔记四(迭代器、生成器、内置函数)

一.迭代器 1.迭代器定义 迭代是一个重复的过程,每次重复一次迭代,并且每次迭代的结果都是下一次迭代的初始值. l = ["aaa","bbb","ccc"] count = 0 while count< len(l): #每次重复完成后count都是下一次的初始值 print(l[count]) count+=1 需要迭代器的原因:对于序列类型str.list.tuple可以依赖索引迭代取值,对于dict.set.文件需要提供不依赖索引取

Python学习笔记四

参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 Python高级特性 一.切片 如果要取出一个列表或元组的部分元素,可以通过直接下标方法: lista=['apple','banana','cherry'] lista[0] lista[1] lista[2] 但如果要取再多个,或者前面(后面)多少个,或中间多少个,直接访问的方法就很不方便了. Python

Python学习笔记四--字典与集合

字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={} dict2={'name':John,'age':24} 使用dict()函数创建字典. dict()函数接受序列,或关键字参数作为参数创建字典.若不提供参数则创建空字典. dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典 dict2=dict(x=1.y

Python学习笔记(四)Python对象类型及其运算

Python对象的相关术语: Python程序中保存的所有数据都是围绕对象这个概念展开的 程序中存储的所有数据都是对象 每个对象都有一个身份,一个类型和一个值 例如,school="MaGe linux"会以"MaGe linux"创建一个字符串对象,其身份是指向它在内存中所处位置的指针(其在内存中的地址),而school就是引用这个具体位置的名称 In [14]: name="herry" In [15]: id(name) Out[15]: 

Python学习笔记(十三)

一.读文件 file = open("文件路径名","读写模式")  # r :读模式 .w :写模式.a :追加模式 如果文件存在,则打开文件成功,如果文件不存在,则打开错误,会抛出一个IOError错误 file_content = file.read() #读取文件中的数据并以字符串的形式返回到内存中 二.关闭文件 file = open(...) file.close() 由于文件读取可能存在抛出IOError错误,所以一旦抛出此错误,那么后续的file.c

JAVA学习笔记(四十三)- ThreadLocal

死锁 /* * 死锁:多个线程使用不同的锁,每个线程都需要另一个线程持有的锁 * 出现:同步的嵌套 * */ public class Test01 { public static void main(String[] args) { Tom tom = new Tom(); Alice alice = new Alice(); MyThread mt1 = new MyThread(tom, alice, true); MyThread mt2 = new MyThread(tom, alic