Python virtualenv pipenvPython virtualenv pipenvPython virtualenv pipenvPython virtualenv pipenv
  • 首页
  • 博客
  • 文件
  • 书签
  • 分析
  • 登录
Search
Generic filters

Python virtualenv pipenv

Published by admin at 2022年3月14日
Categories
  • Python
Tags

区别:

  • pipenv是新出的虚拟环境管理包,弥补了virtuanenv的缺陷,功能上可以理解为:pipenv=pip + virtualenv;
  • virtuanenv是老的虚拟环境管理包,在使用过程中有些缺陷;

命令:

virtualenv pipenv 备注
创建虚拟环境(指定python版本) mkvirtualenv -p python3.8.0 env_1 pipenv install --python 3.8.0 virtualenv可以生成多个虚拟环境,pipenv只能生成一个环境
进入到虚拟环境 workon env_1 pipenv shell pipenv只有一个环境,所以使用shell直接进入
虚拟环境中安装 pip install XXX pipenv install xxx
虚拟环境中删除 pip uninstall xxx pipenv unistall xxx
虚拟环境中查看版本 pip list pipenv graph
退出虚拟环境 deactivate exit()
查看虚拟环境列表 lsvirtualenv lsvirtualenv pipenv创建的虚拟环境也可以使用virtualenv的命令

介绍

过去大家经常使用virtualenv来创建虚拟环境,通过pip freeze生成requirements.txt文件,然后通过pip install -r requirements.txt进行项目模块的管理与安装。这样的安装存在很多问题,比如每次更新模块后,需要手动的重新生成依赖文件,等等问题。但看过今天的文章,你会更喜欢pipenv这款工具。

Pipenv: Python Development Workflow for Humans
Pipenv试图解决的问题是多方面的:

  • 您不再需要单独使用pip和使用virtualenv。他们一起工作。
  • 管理requirements.txt文件可能会有问题,因此Pipenv使用即将推出的文件Pipfile,Pipfile.lock而这对于基本用例来说是优越的。
  • 哈希总是随处可见。安全。自动暴露安全漏洞。
  • 让您深入了解您的依赖图(例如$ pipenv graph)。
  • 通过加载.env文件简化开发工作流程。

这哥们所有的库,都是for Humans,要不要上升这么高的高度...

pipenv安装

pip install pipenv即可轻松完成安装...
之后创建一个我们的项目目录并进入目录输入:pipenv install 创建目录对应的虚拟机。
虚拟机创建目录:

  • windows : %homepath%.virtualenvs\projectname-随机码
  • Linux\Mac: ~/.local/share/virtualenvs/projectname-随机码

虚拟机创建完成后,会在项目目录内生成两个包管理文件文件Pipfile、Pipfile.lock

修改pip源

pipenv shell 进入虚拟机
之后线比急着下载模块,我们需要先修改pip源,因为默认的源官方源速度太慢且连接不稳定。网上说的什么命令行修改的,你趁早别用老老实实的进入Pipfile文件内部修改。

source的标红两个地方需要注意,我用的是阿里的镜像,所以verify_ssl无需修改,但是有些镜像是http协议的,你需要吧verify_ssl改为false,否则报错无法使用。
模块安装

我们看到PIPfile中有两个section标签,一个是dev-packages,一个是packages,这两个有什么区别呢?
pipenv install flask此时,我们安装的是packages
pipenv install watchdog --dev 此时,我们安装的是dev-packages
这两者有什么区别呢?比如我们在开发的过程中会引入一些工具,但这些工具在交付或者上线的时候无需安装,此时我们可以使用--dev的方式安装,而客户在初始化安装时使用pipenv install就不会将开发使用的模块剂型安装,针对环境进行模块分离,是否很犀利?

刚才说到了Pipfile,那么Pipfile.lock这个文件又是干嘛的?
Pipfile.lock是一个json文件,详细记录了,我们安装的每一个模块及模块的详细信息,如:名称、版本、Hash值。这样安装卸载变得更为容易与准确。

模块依赖展示

这个功能是pipenv比较人性化的一个命令行。类似于npm list,会将我们安装的包进行依赖树展示,如下图:

项目迁移

我们之前使用的virtualenv,可以迁移至pipenv吗?
答案是肯定的,只需要先通过pipenv install -r requirements.txt将原有的模块进行迁移,之后使用
同样的,从pipenv迁移至virtualenv项目,也可以使用pipenv run pip freeze 生成requirements.txt。

.env介绍

在虚拟机中,我们的环境信息如何保存呢?比如邮箱,入口方法,等等...这时候我们需要使用到.env的文件。

命令集合
column column
pipenv --where 列出本地工程路径
pipenv --venv 列出虚拟环境路径
pipenv --py 列出虚拟环境的Python可执行文件
pipenv install 创建虚拟环境
pipenv install [moduel] 安装包
pipenv install [moduel] --dev 安装包到开发环境
pipenv uninstall[module] 卸载包
pipenv uninstall --all 卸载所有包
pipenv graph 查看包依赖
pipenv lock 生成lockfile
pipenv run python [pyfile] 运行py文件
pipenv --rm 删除虚拟环境
Flask使用pipenv
.flaskenv

我们在开发Flask项目时,需要创建.flaskenv的文件,用来设置我们的相关环境变量,比如:

FLASK_APP=phraces 
FLASK_ENV=development

但在使用配置文件之前,我们首先需要安装pip install python-dotenv才能进行配置文件的读取操作。
当我们使用flask run命令启动flask程序时,系统会默认去寻找名为app.py的文件进行加载,但如果我们的启动文件是phraces.py时,该如何操作?
另外,当我们添加FLASK_ENV=development时,可以监控文件变动,进行动态reload操作。这就是.flaskenv的用途

pycharm运行pipenv

我们每次通过命令行去启动flask是否太过麻烦?能否直接通过pycharm来启动flask的pipenv呢?当然...只需要按照下图配置即可:

The End

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Categories

  • 猫
  • Python
  • MySQL
  • Django
  • Html/CSS
  • JavaScript
  • Vue
  • RegExp
  • php
  • Practice
  • Virtualization
  • Linux
  • Windows
  • Android
  • NAS
  • Software
  • Hardware
  • Network
  • Router
  • Office
  • WordPress
  • SEO
  • English
  • Games
  • Recipes
  • living
  • Memorandum
  • Essays
  • 未分类

归档

©2015-2022 Alaica Blog support@alaica.com