Pipenv的更低层次:virtualenv

virtualenv

virtualenv 是一个创建隔绝的Python环境的 工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

它可以独立使用,代替Pipenv。

通过pip安装virtualenv:

$ pip install virtualenv

测试您的安装

$ virtualenv --version

基本使用

  1. 为一个工程创建一个虚拟环境:

    $ cd my_project_folder
    $ virtualenv my_project

    virtualenv my_project 将会在当前的目录中创建一个文件夹,包含了Python可执行文件, 以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 my_project ) 可以是任意的;若省略名字将会把文件均放在当前目录。

    在任何您运行命令的目录中,这会创建Python的拷贝,并将之放在叫做 my_project 的文件中。

    您可以选择使用一个Python解释器(比如``python2.7``):

    $ virtualenv -p /usr/bin/python2.7 my_project

    或者使用``~/.bashrc``的一个环境变量将解释器改为全局性的:

    $ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7
  2. 要开始使用虚拟环境,其需要被激活:

    $ source my_project/bin/activate

    当前虚拟环境的名字会显示在提示符左侧(比如说 (my_project)您的电脑:您的工程 用户名$) 以让您知道它是激活的。从现在起,任何您使用pip安装的包将会放在 ``my_project 文件夹中, 与全局安装的Python隔绝开。

    像平常一样安装包,比如:

    $ pip install requests
  3. 如果您在虚拟环境中暂时完成了工作,则可以停用它:

    $ deactivate

    这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。

    要删除一个虚拟环境,只需删除它的文件夹。(要这么做请执行 rm -rf my_project )

    然后一段时间后,您可能会有很多个虚拟环境散落在系统各处,您将有可能忘记它们的名字或者位置。

其他注意

运行带 --no-site-packages 选项的 virtualenv 将不会包括全局安装的包。 这可用于保持包列表干净,以防以后需要访问它。(这在 virtualenv 1.7及之后是默认行为)

为了保持您的环境的一致性,“冷冻住(freeze)”环境包当前的状态是个好主意。要这么做,请运行:

$ pip freeze > requirements.txt

这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。您可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。这将会使另一个不同的开发者(或者是您,如果您需要重新创建这样的环境) 在以后安装相同版本的相同包变得容易。

$ pip install -r requirements.txt

这能帮助确保安装、部署和开发者之间的一致性。

最后,记住在源码版本控制中排除掉虚拟环境文件夹,可在ignore的列表中加上它。

愉快的管理你的虚拟环境

原文地址:https://www.cnblogs.com/Amery313/p/8949820.html

时间: 2024-10-10 18:21:38

Pipenv的更低层次:virtualenv的相关文章

低层次“努力学习”和学习的本质

?什么是"低层次努力"? ?你把握住学习的本质了吗? ?你享受学习过程吗? 声明:本文部分引自 你这么努力,为何还如此焦虑? 1.什么是"低层次努力"? 低层次的努力,其实就是看起来很努力,一般是本身对某个事物没什么想法(方法),但又急于达到目标,所做的一系列费力不讨好.自欺欺人的无用功,是一种假性学习. 那什么是真正的努力呢?引用知乎回答 ------------------------------------------------------引用开始-----

PCL—低层次视觉—关键点检测(rangeImage)

关键点又称为感兴趣的点,是低层次视觉通往高层次视觉的捷径,抑或是高层次感知对低层次处理手段的妥协. ——三维视觉关键点检测 1.关键点,线,面 关键点=特征点: 关键线=边缘: 关键面=foreground: 上述三个概念在信息学中几乎占据了统治地位.比如1维的函数(信号),有各种手段去得到某个所谓的关键点,有极值点,拐点...二维的图像,特征点提取算法是标定算法的核心(harris),边缘提取算法更是备受瞩目(canny,LOG.....),当然,对二维的图像也有区域所谓的前景分割算法用于提取

观点 | 为什么说云主机比物理机故障率更低?

本文根据高效运维系列微信群的嘉宾分享整理并发布.「高效运维」公众号作为本系列群的官方唯一公众号,原创并独家首发.OneAPM 授权转发. 编辑 徐凯强@和信-北京(内容收集.发布) 作者介绍 邱模炯 UCloud 平台开发中心总监,北京大学计算机系研究生毕业,擅长操作系统.虚拟化和数据中心自动化等云平台的基础技术. 引言 很多朋友对云平台可用性有所担心,认为用物理机更加放心.今天我想就这个话题抛出个人看法.希望对大家有参考意义.先抛出结论: 从业务程序的角度,云主机的可用性可以做到比物理机高,即

常见浏览器bug(针对IE6及更低版本)及其修复方法

常见bug及其修复方法有以下几种 1.双外边距浮动bug 双外边距浮动bug在IE6及更低版本中常见.所谓双外边距浮动bug是指使任何浮动元素上的外边距加倍.(见下图) 只要将元素的display属性设置成inline就行了.因为元素时浮动的,所以将display属性设置为inline实际上不会影响显示方式.但是,这似乎会阻止Windows上的IE6及更低版本将所有外边距加倍.所以每当对具有水平外边距的元素浮动时,都应该很自然的将display属性设置为inline,以备外边距将来被加大. 2.

打破牢笼,展望更高层次的世界

笔者袁永福是一个十多年的老程序猿出来创业多年,期间经历许多曲折和磨难,成功的在炮火连天的商业战场上活了下来,并持续发展中.其中不少体会,于是提出本文的主题--打破牢笼,展望更高层次的世界. 回顾过去,我认为每个程序猿都关在一个透明的牢笼中,限制了思维.蒙蔽了眼界.蹉跎了岁月而不自知,如果不尝试走出去是一辈子都不能感知到牢笼的存在.这个牢笼就是技术本身. 一些程序员就要说,我们就是靠技术吃饭的,天天考虑各种编程技巧,技术怎么成为束缚我们的牢笼呢?那是因为很多人只是看到软件技术的表象而没看到本质.[

数据库 的版本为 661,无法打开。此服务器支持 655 版及更低版本。不支持降级路径。

“数据库 的版本为 661,无法打开.此服务器支持 655 版及更低版本.不支持降级路径” 出现这样的问题,一般是因为数据库版本不同造成的. 我们可以用下面的语句查询数据库的版本 use master select @@VERSION (1)661是sql2008 R2的版本号     Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)   Apr  2 2010 15:53:02   Copyright (c) Micro

此服务器支持661版及更低版本。不支持降级路径。

此服务器支持661版及更低版本.不支持降级路径. 环境: SQL Server 2008 R2. 问题: 附加数据库报错"此服务器支持661版及更低版本.不支持降级路径." 解决方案: 出现这样的问题,一般是因为数据库版本不同造成的. 查询数据库版本语法: use master select @@VERSION 661是sql2008 R2的版本号--    Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)  

FIREDAC连接MSSQL 2000报不能支持连接MSSQL2000及更低版本的解决办法

FIREDAC连接MSSQL 2000的时候会报错,原因是MSSQL CLIENT11或MSSQL CLIENT10客户端驱动程序已经不支持连接MSSQL2000及更低版本的数据库. 解决办法: 设置FDPhysSQLiteDriverLink1的ODBCDriver为“SQL Server”,这样FIREDAC将通过ODBC的方式连接上MSSQL2000数据库.

(Java)程序员应打破牢笼,展望更高层次的世界

回顾过去,我认为每个程序猿都关在一个透明的牢笼中,限制了思维.蒙蔽了眼界.蹉跎了岁月而不自知,如果不尝试走出去是一辈子都不能感知到牢笼的存在.这个牢笼就是技术本身. 一些程序员就要说,我们就是靠技术吃饭的,天天考虑各种编程技巧,技术怎么成为束缚我们的牢笼呢?那是因为很多人只是看到软件技术的表象而没看到本质. 孙子兵法说:不知兵之害者不能尽用兵之利也.套过来说,不知技术之害者不能尽用技术之利也.技术也存在有害的一面,它是程序猿谋生的工具,同时也是关着程序猿的牢笼.为什么是牢笼呢,这就涉及到技术的两