Virtualenv 搭建 Py项目运行环境的教程详解


Posted in Python onJune 22, 2020

小朋友你可能有很多问号~,上一小节不是已经一顿操作猛如虎搭建好 Python + PyCharm 可用开发环境了吗?为什么这节又来个项目运行环境?作者你是不是想搞事情...

Virtualenv 搭建 Py项目运行环境的教程详解

Virtualenv 简介

Virtualenv 搭建 Py项目运行环境的教程详解

淡定,事情是这样(试图狡辩):

首先 「 Virtualenv 」 是用于创建隔离的Python环境的工具。 那为什么需要隔离 不同项目的 Python 环境呢

由于 Python 被称为胶水语言,用途相当广泛。导致它的类库也五花八门,比如:

  • web开发,你需要安装 Flask,Djanjo...
  • 人工智能,你又需要 pytesseract,PIL...
  • 数据分析,你需要 numpy,Matplotlib...
  • 爬虫工程,你需要 Scrapy,Beautifulsoup...

更不用说还有 自动化运维,自动化测试... 不同使用场景之间使用的类库又不同版本要求,而且并不依赖,但Python的包却只能同时安装一个版本。所以一股脑地使用 pip 把 Python 类库都默认安装在 电脑全局环境上,时间久了 「 肯定会出问题 」

于是就有了 「 Virtualenv 」 这么一个为每一个项目创建一套 「 独立隔离 」 的Python运行环境的工具。

清晰明了,安全隔离,并且满足每个项目甚至阶段。管理不同的Python版本解释器和不同的类库的工具

既然用处这么大,我们赶紧迈出六亲不认的步伐 —— 学习怎么应用到实际开发

Virtualenv 搭建 Py项目运行环境的教程详解

安装 Virtualenv

我们可以进入 Virtualenv 的 Github 或者文档 查看说明,点击进入 installation(安装)

里面记录了各种可行的 Virtualenv 安装方法。

Virtualenv 搭建 Py项目运行环境的教程详解

由于 Python 是默认支持 pip 安装类库方式,所以这里我们选用第二种

pip install virtualenv

pip install -i https://pypi.douban.com/simple virtualenv (国内镜像速度较快)

事不宜迟,我们马上开始:

回到桌面,双击运行 PyCharm 等待 PyCharm 打开后,点击 底部菜单 Terminal 标签 运行命令行工具

Virtualenv 搭建 Py项目运行环境的教程详解

输入 pip install virtualenv 并回车执行,安装 virtualenv

# 安装 virtualenv 
D:\Dev\workplace\imooc>pip install virtualenv

# 通过 virtualenv --version 查看 virtualenv 版本号 和 安装路径
D:\Dev\workplace\imooc>virtualenv --version
virtualenv 20.0.18 from d:\dev\env\python3.7\lib\site-packages\virtualenv\__init__.py

如果遇到 pip 加载类库速度慢情况。是因为 pip 默认安装源在国外,更换为国内 pip 源就能加速。详情参照下面 国内 pip 源,加速类库安装 内容

至此 Virtualenv 已在全局环境中已经安装完成

创建 项目运行环境

Virtualenv 工具已经安装完了,那我们就来练练手给我们 imooc 项目建立 项目运行环境

建立 项目运行环境 的命令怎么写呢,遇事不决要么看文档,要不搜索,问人

我们先回到 Virtualenv文档 ,左侧菜单进入 用户指南 > 介绍 有这么一段

Virtualenv 搭建 Py项目运行环境的教程详解

于是我们就知道了,在 imooc 项目路径下 执行 virtualenv 。就能在 当前路径生成一个相同版本的python虚拟环境 venv

那问题又来了 —— 这些都是默认的,如果我需要 「 指定目录下 」 生成 「 指定 python 版本 」 的虚拟环境 怎么办?

我们从刚才的 用户指南 > 介绍 中继续读下去,就有这么一句

命令行工具具有许多用于修改组件行为的标志,有关完整列表,请确保检出 CLI标志 。

翻译得不太准确哈,正确意译过来是:

命令行工具 (virtualenv) 中有很多命令设置选项,完整的配置请查阅 CLI选项列表 。

那我们就点击进去看一下吧,发现其中的

  • dest :在该目录下创建 virtualenv
  • -p, --python :为创建虚拟环境指定 Python 解释器(需要绝对路径)

这不就是我们要找的嘛

Virtualenv 搭建 Py项目运行环境的教程详解

所以我们创建 imooc 项目运行环境,应该这么写 virtualenv D:\Dev\env\imooc_venv -p D:\Dev\env\Python3.7\python.exe`,执行情况如下

D:\Dev\workplace\imooc>virtualenv D:\Dev\env\imooc_venv -p D:\Dev\env\Python3.7\python.exe
created virtual environment CPython3.7.7.final.0-64 in 406ms
 creator CPython3Windows(dest=D:\Dev\env\imooc_venv, clear=False, global=False)
 seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Abo\A
ppData\Local\pypa\virtualenv\seed-app-data\v1.0.1)
 activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

D:\Dev\workplace\imooc>

查看路径 D:\Dev\env 下就有了 我们刚刚创建的 imooc_venv 项目运行环境

Virtualenv 搭建 Py项目运行环境的教程详解

PyCharm 结合 Virtualenv 使用

我们上一小节知道,项目的 Python 执行环境,在创建项目时就已经指定了。

当我们创建好新的项目运行环境是该如何设置呢?

我们回到 PyCharm,点击它的头部菜单栏 File > Setting

Virtualenv 搭建 Py项目运行环境的教程详解

选择 Project: imooc (imooc 项目设置) > Python Interperter (项目解析器) > Show All (展开所有)

Virtualenv 搭建 Py项目运行环境的教程详解

添加虚拟环境 > Existing environment(已存在环境)> 选中 虚拟环境路径下的 python.exe 文件, 确定更新

本课程的路径是 D:\Dev\env\imooc_venv\Scripts\python.exe

Virtualenv 搭建 Py项目运行环境的教程详解

等环境重新加载完成后,External Libraries(外部依赖类库)会变成 「 imooc_venv 」 ; 重启 Terminal (PyCharm 命令行工具)会加上 (imooc_venv) 代表在虚拟环境中

Virtualenv 搭建 Py项目运行环境的教程详解

这里又有个小问题,正常进入 D:\Dev\workplace\imooc 路径是没有进入虚拟环境,不会带有 (imooc_venv) 。要怎样才能进入/退出呢

Virtualenv 搭建 Py项目运行环境的教程详解

进入/退出虚拟环境

遇事不决查virtualenv 文档 ,里面的介绍就有这么一段

总结下来就是 [venv]\Scripts\activate:激活虚拟环境;[venv]\Scripts\deactivate.bat:注销虚拟环境;

Virtualenv 搭建 Py项目运行环境的教程详解

C:\Users\Abo>d:

D:\>cd \Dev\workplace\imooc

# 启动虚拟环境
D:\Dev\workplace\imooc>D:\Dev\env\imooc_venv\Scripts\activate

# 退出虚拟环境
(imooc_venv) D:\Dev\workplace\imooc>D:\Dev\env\imooc_venv\Scripts\deactivate.bat
D:\Dev\workplace\imooc>

至此 imooc 项目 Python 虚拟环境安装完成,ღ( ´・ᴗ・` )比心

Virtualenv 搭建 Py项目运行环境的教程详解

国内 pip 源,加速类库安装

如果遇到 pip 下载速度慢,可以考虑换国内其他源镜像

国内 pip 源:

  • 清华:https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云:https://mirrors.aliyun.com/pypi/simple
  • 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
  • 豆瓣:https://pypi.douban.com/simple

临时使用 格式为:pip install -i 国内源网址 模块名

例如:pip install -i https://pypi.douban.com/simple urllib3

说明:使用 豆瓣 源,加速安装 urllib3 模块

总结

到此这篇关于Virtualenv 搭建 Py项目运行环境的文章就介绍到这了,更多相关Virtualenv 搭建 Py项目运行环境内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python中的urllib模块使用详解
Jul 07 Python
python魔法方法-属性访问控制详解
Jul 25 Python
Python爬取附近餐馆信息代码示例
Dec 09 Python
对Python中9种生成新对象的方法总结
May 23 Python
Python绘制的二项分布概率图示例
Aug 22 Python
python list格式数据excel导出方法
Oct 31 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Pytorch 实现权重初始化
Dec 31 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
Python实现异步IO的示例
Nov 05 Python
用python批量移动文件
Jan 14 Python
终于搞懂了Keras中multiloss的对应关系介绍
Jun 22 #Python
keras 多任务多loss实例
Jun 22 #Python
python对execl 处理操作代码
Jun 22 #Python
Python select及selectors模块概念用法详解
Jun 22 #Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 #Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 #Python
Python Excel vlookup函数实现过程解析
Jun 22 #Python
You might like
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
解读Python中degrees()方法的使用
2015/05/18 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
100%羊绒:NakedCashmere
2020/08/26 全球购物
护理自我鉴定范文
2013/10/06 职场文书
空乘英文求职信
2014/04/13 职场文书
文明生主要事迹
2014/05/25 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
八项规定整改方案
2014/10/01 职场文书
干部个人考察材料
2014/12/24 职场文书
结婚典礼致辞
2015/07/28 职场文书
解析Redis Cluster原理
2021/06/21 Redis
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电