使用 virtualenv 的 Python 环境设置教程
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。
如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
首先,我们用pip安装virtualenv:
$ pip3 install virtualenv
然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:
第一步,创建目录:
Mac:~ michael$ mkdir myproject Mac:~ michael$ cd myproject/ Mac:myproject michael$
第二步,创建一个独立的Python运行环境,命名为venv:
Mac:myproject michael$ 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进入该环境:
Mac:myproject michael$ source venv/bin/activate (venv)Mac:myproject michael$
注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。
下面正常安装各种第三方包,并运行python命令:
(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这个应用创建的。
退出当前的venv环境,使用deactivate命令:
(venv)Mac:myproject michael$ deactivate Mac:myproject michael$
此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。
完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
小结virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。
以上是使用 virtualenv 的 Python 环境设置教程的详细内容。更多信息请关注PHP中文网其他相关文章!

在我们的尴尬系列的第六部分中,我们将探索下一个命令,该命令可以通过跳过冗余处理步骤来提高脚本执行的效率。下一个命令是什么?awk instruc中的下一个命令

在Linux系统中传输文件是一项常见任务,每个系统管理员都应掌握,尤其是涉及本地或远程系统间的网络传输。Linux提供了两种常用的工具来完成此任务:SCP(安全复制)和Rsync。两者都提供了一种安全且便捷的方式,用于在本地或远程机器之间传输文件。本文将详细介绍如何使用SCP和Rsync命令来传输文件,包括本地和远程文件传输。了解Linux中的scp(安全复制协议)scp命令是一个命令行程序,用于在两个主机之间通过SSH(安全 Shell)安全地复制文件和目录,这意味着在文件通过互联网传输时,数

与Windows和Mac OS X相比,Linux的一个引人入胜的功能是对各种桌面环境的支持。这使桌面用户可以根据其计算要求选择最合适且最合适的桌面环境。A

Libreoffice脱颖而出,是一个健壮的开源办公室套件,适用于Linux,Windows和Mac平台。它拥有一系列用于处理Word文档,电子表格,演示,图纸,计算和Mathematica的高级功能

在AWK命令系列的较早部分中,我们的重点主要是从文件中读取输入。但是,如果您需要从stdin中读取输入怎么办?在Awk系列的第7部分中,我们将探索几个示例,您可以在其中使用O的输出。

Clifm是一个独特而令人难以置信的迅速命令行文件管理器,在类似壳的界面的基础上设计。这意味着用户可以使用他们已经熟悉的命令与他们的文件系统互动。

如果您不想执行Linux Mint 22 Wilma的新安装,则可以选择从以前的版本中升级。在本指南中,我们将详细介绍从Linux Mint 21.3升级的过程(21.X系列的最新次要版本


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。