如何在virtualenv环境中安装指定的python版本
指定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运行环境,可以这么做:
第一步,创建目录:
- 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运行环境,解决了不同应用间多版本的冲突问题。
指定python版本
virtualenv TEST --python=python2.7
现在, flasky 文件夹中就有了一个名为 venv 的子文件夹,它保存一个全新的虚拟环境,其
中有一个私有的 Python 解释器。在使用这个虚拟环境之前,你需要先将其“激活”。如果
你使用 bash 命令行(Linux 和 Mac OS X 用户),可以通过下面的命令激活这个虚拟环境:
$ source venv/bin/activate
如果使用微软 Windows 系统,激活命令是:
$ venv\Scripts\activate
输入 deactivate。
转载于:https://www.cnblogs.com/ExMan/p/9300549.html
如何在virtualenv环境中安装指定的python版本相关推荐
- 如何在Ubuntu 20.04的Anaconda不同环境中安装不同的CUDA版本(2020年8月)
我觉得这个需求肯定很多朋友都有. 首先应该考虑一点:如果装了不同版本的CUDA,是不是也得装不同版本的cuDNN?我目前的结论是:为了不影响系统中本来的cuDNN,是可以不装的.按照这篇博客的介绍:h ...
- 《现代命令行工具指南》10. 管理工具:在隔离环境中安装和运行 Python 命令行工具 - Pipx
好工具就是生产力,这是专栏<现代命令行工具指南>精讲的第 10 个命令行工具,欢迎品鉴. 很多强大的命令行工具都是用 Python 编写的,比如,poetry.trash-cli.bla ...
- 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 ...
- 如何在ubuntu 2210中安装NVIDIA 515显卡驱动、CUDA 11.7和cuDNN 8.4
如何在ubuntu 2210中安装NVIDIA驱动.CUDA和cuDNN 本篇讲解参考NVIDIA官方CUDA ToolKIT DOCUMENTATION和CUDNN DUCUMENTATION 本机 ...
- 如何在DOCKER环境中使用DB2
如何在DOCKER环境中使用Db2 前言 此问的目的是帮助用户能够在docker的环境中学习Db2,前提条件的你的服务器可以访问互联网,否则无法下载Db2镜像.Docker环境中学习Db2的优势是省去 ...
- 电脑w ndoWs语言权限通知,如何在 Wndows XP 中安装和配置语音识别
<如何在 Wndows XP 中安装和配置语音识别>由会员分享,可在线阅读,更多相关<如何在 Wndows XP 中安装和配置语音识别(16页珍藏版)>请在技术文库上搜索. 1 ...
- Ambari在离线环境中安装Hadoop集群
2019独角兽企业重金招聘Python工程师标准>>> http://www.hackbase.com/article-973-1.html (WJW)Ambari在离线环境中安装H ...
- matlab yalmip安装教程,如何在matlab路径中安装yalmip Matlab R2014a添加yalmip图文教程
yalmip是什么?可以说,yalmip是一位"集大成者",它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划).bintprog(二值线性规划).bnb(分支界定 ...
- linux系统可以装win10吗,如何在Win10专业版中安装Linux系统?
如何在Win10专业版中安装Linux系统?在Windows10 第3个稳定版发布以后,支持内嵌的Linux系统,正如大家所知道的,大多数 Linux 上的命令行二进制程序现在可以原生地运行在 Win ...
- 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 ...
最新文章
- php循环输出多个网络地址图片,php中curl循环往请求多个URL和多线程去请求多个URL的方法...
- 跳一跳j算法ava代码_DBSCAN聚类算法的理解与应用
- python语言程序设计教程-Python语言程序设计(视频教程)
- Cisco交换机的经典配置(4)
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Java中Socket通信-客户端与服务端相互传输对象数据
- SQL Server pivot行列转换案例分析
- Elasticsearch技术解析与实战(三)文档的聚合
- 数据库笔记11:创建与管理存储过程
- T-SQL: Adding More to Our Queries
- ubuntu14安装tensorflow并测试
- 红外传感器的基础知识
- TCP 拥塞控制算法
- 软件项目管理知识点总结
- 系统优化怎么做-开篇
- opencv 数据库裁剪图片
- 阿里云CAC_DevOps课程详细文字文档
- 解决WARNING: Ignoring invalid distribution -pencv-python (c:\users\lhw\anaconda3\lib\site-packages)
- Rabbitmq安装以及入门
- 如何用python画小黄人_怎么用python画小黄人
热门文章
- [android] 百度地图开发 (两).所在地的城市定位和城市POI搜索
- Factorization Mechanism
- 强的离谱!串烧70+个Transformer模型,涵盖CV、NLP、金融、隐私计算...
- 哈工大讯飞联合实验室发布少数民族多语言预训练模型CINO
- 【追一科技】NLG技术:文本生成技术多样化应用的探索之路
- 中国高校改名发展史:改了名,我们就是一流大学了
- 【干货】《深度学习:Deep Learning》课程PPT下载
- PyTorch学习—19.模型的加载与保存(序列化与反序列化)
- Effective C++:改善程序与设计的55个具体做法:第3版 评注者序
- 文件管理器之文件操作