指定python版本:virtualenv   -p python执行文件路径     自定义虚拟环境名称。如果文件路径有空格,用引号。

如果不指定python版本,则默认使用环境变量中的python版本

可使用-p PYTHON_EXE选项在创建虚拟环境的时候指定Python版本

1 #创建python2.7虚拟环境
2 virtualenv -p /usr/bin/python2.7 ENV2.7
3
4 #创建python3.4虚拟环境
5 virtualenv -p /usr/local/bin/python3.4 ENV3.4

这样可以解决不同项目python版本冲突以及和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运行环境,可以这么做:

第一步,创建目录:

  1. Mac:~ michael$ mkdir myproject
  2. Mac:~ michael$ cd myproject/
  3. Mac:myproject michael$

第二步,创建一个独立的Python运行环境,命名为venv

  1. Mac:myproject michael$ virtualenv --no-site-packages venv
  2. Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
  3. New python executable in venv/bin/python3.4
  4. Also creating executable in venv/bin/python
  5. Installing setuptools, pip, wheel...done.

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

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

  1. Mac:myproject michael$ source venv/bin/activate
  2. (venv)Mac:myproject michael$

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

下面正常安装各种第三方包,并运行python命令:

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

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

退出当前的venv环境,使用deactivate命令:

  1. (venv)Mac:myproject michael$ deactivate
  2. Mac:myproject michael$

此时就回到了正常的环境,现在pippython均是在系统Python环境下执行。

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

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

小结

virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

指定python版本

virtualenv TEST --python=python2.7

现在, flasky 文件夹中就有了一个名为 venv 的子文件夹,它保存一个全新的虚拟环境,其
中有一个私有的 Python 解释器。在使用这个虚拟环境之前,你需要先将其“激活”。如果
你使用 bash 命令行(Linux 和 Mac OS X 用户),可以通过下面的命令激活这个虚拟环境:
$ source venv/bin/activate
如果使用微软 Windows 系统,激活命令是:
$ venv\Scripts\activate

当虚拟环境中的工作完成后,如果你想回到全局 Python 解释器中,可以在命令行提示符下
输入 deactivate。

个人分类: python

转载于:https://www.cnblogs.com/ExMan/p/9300549.html

如何在virtualenv环境中安装指定的python版本相关推荐

  1. 如何在Ubuntu 20.04的Anaconda不同环境中安装不同的CUDA版本(2020年8月)

    我觉得这个需求肯定很多朋友都有. 首先应该考虑一点:如果装了不同版本的CUDA,是不是也得装不同版本的cuDNN?我目前的结论是:为了不影响系统中本来的cuDNN,是可以不装的.按照这篇博客的介绍:h ...

  2. 《现代命令行工具指南》10. 管理工具:在隔离环境中安装和运行 Python 命令行工具 - Pipx

    ​好工具就是生产力,这是专栏<现代命令行工具指南>精讲的第 10 个命令行工具,欢迎品鉴. 很多强大的命令行工具都是用 Python 编写的,比如,poetry.trash-cli.bla ...

  3. iis7 php 5.4,laravel 5.4如何在iis 7环境中安装

    laravel 5.4如何在iis 7环境中安装 发布时间:2020-12-09 18:05:16 来源:亿速云 阅读:100 作者:Leah 本篇文章为大家展示了laravel 5.4如何在iis ...

  4. 如何在ubuntu 2210中安装NVIDIA 515显卡驱动、CUDA 11.7和cuDNN 8.4

    如何在ubuntu 2210中安装NVIDIA驱动.CUDA和cuDNN 本篇讲解参考NVIDIA官方CUDA ToolKIT DOCUMENTATION和CUDNN DUCUMENTATION 本机 ...

  5. 如何在DOCKER环境中使用DB2

    如何在DOCKER环境中使用Db2 前言 此问的目的是帮助用户能够在docker的环境中学习Db2,前提条件的你的服务器可以访问互联网,否则无法下载Db2镜像.Docker环境中学习Db2的优势是省去 ...

  6. 电脑w ndoWs语言权限通知,如何在 Wndows XP 中安装和配置语音识别

    <如何在 Wndows XP 中安装和配置语音识别>由会员分享,可在线阅读,更多相关<如何在 Wndows XP 中安装和配置语音识别(16页珍藏版)>请在技术文库上搜索. 1 ...

  7. Ambari在离线环境中安装Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> http://www.hackbase.com/article-973-1.html (WJW)Ambari在离线环境中安装H ...

  8. matlab yalmip安装教程,如何在matlab路径中安装yalmip Matlab R2014a添加yalmip图文教程

    yalmip是什么?可以说,yalmip是一位"集大成者",它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划).bintprog(二值线性规划).bnb(分支界定 ...

  9. linux系统可以装win10吗,如何在Win10专业版中安装Linux系统?

    如何在Win10专业版中安装Linux系统?在Windows10 第3个稳定版发布以后,支持内嵌的Linux系统,正如大家所知道的,大多数 Linux 上的命令行二进制程序现在可以原生地运行在 Win ...

  10. abaqus的python安装文件在哪_python - 在ABAQUS 6.14 python环境中安装熊猫 - 堆栈内存溢出...

    我想要做的是在ABAQUS CAE软件包内的python发行版中安装Pandas软件包. Python 2.7.3 (default, Oct 4 2012, 15:15:08) [MSC v.160 ...

最新文章

  1. php循环输出多个网络地址图片,php中curl循环往请求多个URL和多线程去请求多个URL的方法...
  2. 跳一跳j算法ava代码_DBSCAN聚类算法的理解与应用
  3. python语言程序设计教程-Python语言程序设计(视频教程)
  4. Cisco交换机的经典配置(4)
  5. Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
  6. Java中Socket通信-客户端与服务端相互传输对象数据
  7. SQL Server pivot行列转换案例分析
  8. Elasticsearch技术解析与实战(三)文档的聚合
  9. 数据库笔记11:创建与管理存储过程
  10. T-SQL: Adding More to Our Queries
  11. ubuntu14安装tensorflow并测试
  12. 红外传感器的基础知识
  13. TCP 拥塞控制算法
  14. 软件项目管理知识点总结
  15. 系统优化怎么做-开篇
  16. opencv 数据库裁剪图片
  17. 阿里云CAC_DevOps课程详细文字文档
  18. 解决WARNING: Ignoring invalid distribution -pencv-python (c:\users\lhw\anaconda3\lib\site-packages)
  19. Rabbitmq安装以及入门
  20. 如何用python画小黄人_怎么用python画小黄人

热门文章

  1. [android] 百度地图开发 (两).所在地的城市定位和城市POI搜索
  2. Factorization Mechanism
  3. 强的离谱!串烧70+个Transformer模型,涵盖CV、NLP、金融、隐私计算...
  4. 哈工大讯飞联合实验室发布少数民族多语言预训练模型CINO
  5. 【追一科技】NLG技术:文本生成技术多样化应用的探索之路
  6. 中国高校改名发展史:改了名,我们就是一流大学了
  7. 【干货】《深度学习:Deep Learning》课程PPT下载
  8. PyTorch学习—19.模型的加载与保存(序列化与反序列化)
  9. Effective C++:改善程序与设计的55个具体做法:第3版 评注者序
  10. 文件管理器之文件操作