使用virtualenv和pip构建项目所需的独立Python环境

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/82258737 由于最近刚好有个测试需求,来讲一讲如何使用virtualenv和pip构建项目所需的独立Python环境。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/82258737

由于最近刚好有个测试需求,来讲一讲如何使用virtualenv和pip构建项目所需的独立Python环境。关于pip的介绍之前已有一篇博客,链接在下面。今天对pip的介绍主要是关于其他参数。

Python开篇——简介、pip和conda

1 为什么需要独立的Python环境?

在讲技术前,想先讲讲目的。为什么我们需要独立的Python环境?这里就借用virtualenv的文档来解释吧。

virtualenv is a tool to create isolated Python environments.

The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.

Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

Also, what if you can’t install packages into the global site-packages directory? For instance, on a shared host.

In all these cases, virtualenv can help you. It creates an environment that has its own installation directories, that doesn’t share libraries with other virtualenv environments (and optionally doesn’t access the globally installed libraries either).

当你在开发or数据分析时,可能会遇上不同的需求,对所需要的包的版本不统一,譬如前一段我在开发D3L Tool的时候遇上的一个问题。当时开发的程序并不能在Win 7系统上运行,后面搜索了很久,发现是pyinstaller版本的问题。但是我又不太想把pyinstaller版本往下降。所以这个时候virtualenv就很有用了。

2 使用virtualenv和pip来构建纯净和独立的Python环境

接下来主要来讲讲怎么操作。另外提一句这里介绍的主要是Windows下的,Linux和Mac的会有些小差别。基于的Python环境是Anaconda2 Python 2.7.12。

2.1 安装

安装部分还是pip大法好。具体就不展开了,pip的安装在前面的博客已经介绍过了。

pip install virtualenv

2.2 使用virtualenv创建Python环境

先选择你要创建的工程路径。用cmd进入到该文件夹里。

cd your project path

接下来有两种情况,virtualenv的使用方式其实与pip类似,它也在Python安装路径的Scripts里。因此根据你是否设置了环境变量就有两种方式运行。

情况1:将Scripts路径设置为电脑的环境变量

virtualenv venv #venv为你的文件名,也就是放置新的、纯净的、独立的Python环境的文件夹

情况2: 没有设置Scripts路径为电脑的环境变量

.../Python/Scripts/virtualenv venv #...表示Python安装路径包,根据个人不同替换,venv同上

接着就开始运行了,定位到我们建立的文件夹下可以看到。

一共有这么几个文件。

接下来在cmd定位到项目路径,并运行如下命令。

cd Scripts
activate

这就进入了virtualenv的Python环境。

关闭这个环境,只需要运行如下命令。

deactivate

2.3 使用pip安装包

其实pip安装的部分我之前已经介绍过了,不过上一篇讲得比较简单,仅仅就讲了讲最简单的pip install。而pip 安装包的时候,由于使用的是国外的地址下载包,可能会有些慢或者经常掉线,因此使用国内镜像是比较快的,另外如前文的需求,有些时候需要安装指定版本的包。这也是这次的重点。

pip install -i "mirror" numpy==version # mirror就是指国内的镜像地址,version就是指包的版本。

主要介绍的两个参数就是如上所示了,一个是填入国内镜像地址,一个是给定指定包的版本。具体镜像地址见问候链接的第二篇文章。这里给出清华的镜像。

清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple

本文参考的一些文章链接如下。

1.用virtualenv建立多个Python独立开发环境

2.让PIP源使用国内镜像,提升下载速度和安装成功率

目录
相关文章
|
1月前
|
Unix Shell Linux
赞!优雅的Python多环境管理神器!易上手易操作!
赞!优雅的Python多环境管理神器!易上手易操作!
|
1月前
|
存储 缓存 Linux
如何在Linux环境下对pip的缓存地址进行修改
如何在Linux环境下对pip的缓存地址进行修改
|
2天前
|
数据采集 NoSQL 搜索推荐
五一假期畅游指南:Python技术构建的热门景点分析系统解读
五一假期畅游指南:Python技术构建的热门景点分析系统解读
|
4天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
7天前
|
JavaScript 搜索推荐 前端开发
音乐发现平台:借助Python和Vue构建个性化音乐推荐系统
【4月更文挑战第11天】本文介绍了如何使用Python和Vue.js构建个性化音乐推荐系统。首先确保安装Python、Node.js、数据库系统和Git。后端可选择Flask或Django搭建RESTful API,处理歌曲数据。前端利用Vue.js创建用户界面,结合Vue CLI、Vuex和Vue Router实现功能丰富的SPA。通过Vuex管理状态,Axios与后端通信。这种前后端分离的架构利于协作和系统扩展,助力打造定制化音乐体验。
|
8天前
|
机器学习/深度学习 人工智能 算法
|
13天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
33 6
|
22天前
|
C语言 Python
Python字典推导式:高效构建字典的利器
在Python编程中,字典推导式(Dictionary Comprehension)是一种强大的构造工具,它允许我们以简洁的方式从现有可迭代对象创建新的字典。通过字典推导式,我们可以轻松地对数据进行转换、过滤或重新组织,以符合特定的需求。本文将深入探讨字典推导式的概念、语法和应用场景,帮助读者更好地掌握这一高效的编程工具。
|
1月前
|
机器学习/深度学习 算法框架/工具 Python
如何使用Python的Keras库构建神经网络模型?
如何使用Python的Keras库构建神经网络模型?
8 0
|
1月前
|
存储 算法 调度
使用Python构建预约式电梯调控系统
随着科技的快速发展和城市化进程的加速,电梯作为现代建筑的重要交通工具,其运行效率和乘客体验越来越受到人们的关注。传统的电梯运行方式往往是基于楼层按钮呼叫的,这种方式在高峰时段往往会造成电梯的拥堵和等待时间过长。
17 0

热门文章

最新文章