前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用pipenv管理python环境

使用pipenv管理python环境

作者头像
zx钟
发布2019-07-23 10:40:08
1.4K0
发布2019-07-23 10:40:08
举报
文章被收录于专栏:测试游记测试游记

在一台新的机器上执行py文件的时候经常会遇到环境的问题。

现有的一些解决方案:

  • requirements.txt
  • python2的virtualenv方案
  • python3的venv方案
  • pipenv pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。 Pipfile和pipenv本来都是Kenneth Reitz的个人项目,后来贡献给了pypa组织。 Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。

安装

代码语言:javascript
复制
$ pip install pipenv

创建环境

在项目路径下使用

代码语言:javascript
复制
$ pipenv install
# 也可以按如下方式指定版本
$ pipenv --python 3.6

创建环境

激活环境

代码语言:javascript
复制
$ pipenv shell

使用exit可以退出环境

激活环境后可以直接使用python xxx.py以该环境运行脚本

也可以使用pipenv run python xxx.py在不激活环境的情况下用以该环境运行脚本

安装第三方库

代码语言:javascript
复制
$ pipenv install flask

也可以在安装第三方库之前,打开Pipfile修改一下里面的url为国内阿里云第三方库地址:

https://mirrors.aliyun.com/pypi/simple

代码语言:javascript
复制
[[source]]
name = "pypi"
url = "https://mirrors.aliyun.com/pypi/simple"
verify_ssl = true[dev-packages][packages]
flask = "*"[requires]
python_version = "3.7"

安装flask

查看当前环境的依赖

代码语言:javascript
复制
$ pipenv graph

可以看出我们安装了一个Flask的同时,安装了它的4个依赖,其中Jinja2也安装了它的一个依赖

也可以使用pipenv shell进入虚拟环境后使用pip list查看环境

测试

编写一个简单的flask脚本进行测试

app.py

代码语言:javascript
复制
from flask import Flask
app = Flask(__name__)@app.route('/')def index():
return '<h1>Hello Pipenv</h1>'

开发环境移植

在一个新的环境中,将代码和Pipfile复制过去

由于Pipfile里面没有所有子依赖包或者确定的版本,因此该安装可能会更新未指定模块的版本号

代码语言:javascript
复制
$ pipenv install --dev

新开发环境测试

代码语言:javascript
复制
$ pipenv run flask run

生产环境移植

开发环境和生产环境稍微有点区别,开发环境中可能有一些不稳定的版本或依赖,而生产环境一般都比较固定

如果想只安装在开发环境才使用的包:

代码语言:javascript
复制
$ pipenv install <第三方库> --dev

运行以下命令,把当前环境的模块lock住, 它会更新Pipfile.lock文件,该文件是用于生产环境的,不应该人为编辑它。

代码语言:javascript
复制
$ pipenv lock

然后只需要把代码Pipfile.lock放到生产环境,运行下面的代码,就可以创建和开发环境一样的环境,Pipfile.lock里记录了所有包和子依赖包的确切版本,因此是确定构建

代码语言:javascript
复制
$ pipenv install --ignore-pipfile

卸载包

代码语言:javascript
复制
$ pipenv uninstall flask

其他

当前虚拟环境目录

代码语言:javascript
复制
$ pipenv --venv

当前项目根目录

代码语言:javascript
复制
$ pipenv --where

检查安全性和PEP508

代码语言:javascript
复制
$ pipenv check

所以可以直接通过将Pipfile加入到版本管理来进行环境的管理

至于Pipfile.lock是否要加入就看具体需求了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 创建环境
  • 激活环境
  • 安装第三方库
  • 查看当前环境的依赖
  • 测试
  • 开发环境移植
  • 新开发环境测试
  • 生产环境移植
  • 卸载包
  • 其他
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档