搜索
首页系统教程LINUX使用 virtualenv 的 Python 环境设置教程

使用 virtualenv 的 Python 环境设置教程

Jan 03, 2024 pm 07:50 PM
linuxlinux教程红帽linux系统linux命令linux认证红帽linuxlinux视频

在开发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中文网其他相关文章!

声明
本文转载于:Linux就该这么学。如有侵权,请联系admin@php.cn删除
如何使用Next' Linux中的尴尬命令 - 第6部分如何使用Next' Linux中的尴尬命令 - 第6部分May 15, 2025 am 10:43 AM

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

如何在Linux中有效传输文件如何在Linux中有效传输文件May 15, 2025 am 10:42 AM

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

有史以来最受欢迎的Linux桌面环境有史以来最受欢迎的Linux桌面环境May 15, 2025 am 10:35 AM

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

如何在Linux桌面中安装Libreoffice 24.8如何在Linux桌面中安装Libreoffice 24.8May 15, 2025 am 10:15 AM

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

如何使用linux中的仅限文件来处理PDF文件如何使用linux中的仅限文件来处理PDF文件May 15, 2025 am 09:58 AM

管理PDF文件的Linux用户可以使用各种程序。具体来说,有许多专门为各种功能设计的专业PDF工具。

如何使用AWK和STDIN过滤命令输出如何使用AWK和STDIN过滤命令输出May 15, 2025 am 09:53 AM

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

CLIFM- Linux的Lightning -Fast终端文件管理器CLIFM- Linux的Lightning -Fast终端文件管理器May 15, 2025 am 09:45 AM

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

如何从Linux Mint 21.3升级到Linux Mint 22如何从Linux Mint 21.3升级到Linux Mint 22May 15, 2025 am 09:44 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版

SublimeText3 英文版

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

SecLists

SecLists

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

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

安全考试浏览器

安全考试浏览器

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