pipenv都包含什么?

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

Pipfile的基本理念是:

Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分。
提供版本锁支持,存为 Pipfile.lock。
click是Flask作者 Armin Ronacher 写的命令行库,现在Flask已经集成了它。

关于虚拟环境

作为python的开发者,在真正的开发需求完成并测试好之后,自然需要发布到正式的服务器,此时就会面临环境问题,假设服务器是一台全新的没有任何python第三方模块包,自然没有版本约束会好一点,但是那么包,也不一定全部记得,一个个手动安装始终是不现实的;再假设服务器是以前装好的,自然安装包之间会有版本问题,本机就算测试再好,在版本问题面前也都是白费。所以,需要一个虚拟的环境,在这个虚拟环境里面模拟出一个跟服务器一模一样的环境出来。

此篇blog的篇幅主要放在讲解,以pipenv命令来建立虚拟环境,所以就不在讲解之前提到的其他可以使用的其他命令的虚拟环境搭建。

搭建虚拟环境

此处楼主以一个明确的新项目需求来一步步解释一下如何使用。

1、明确项目的目录并创建

2、进入项目并使用创建虚拟环境

如上,虚拟环境就创建好了,当然也可以使用指定版本的python来创建虚拟环境

pipenv --three 会使用当前系统的Python3创建环境

pipenv --python 3.6 指定某一Python版本创建环境

pipenv shell 激活虚拟环境

pipenv --where 显示目录信息
/Users/dandyzhang/pipenv_test pipenv --venv 显示虚拟环境信息
/Users/dandyzhang/.local/share/virtualenvs/pipenv_test-xlDg6jo5 pipenv --py 显示Python解释器信息
/Users/dandyzhang/.local/share/virtualenvs/pipenv_test-xlDg6jo5/bin/python

此时,可以发现路径下多了两个文件

这就是上面解释的环境配置文件。

创建Django项目

此时既然需要创建django项目,需要安装django包

查看一下pipfile文件

这里面的版本的*表示最新的版本吧

当然也可以安装指定版本的模块包:

pipenv install django==1.11 安装固定版本模块并加入到Pipfile
pipenv graph 查看目前安装的库及其依赖

如果安装指定的版本的模块,

再查看一下pipfile

发现当指定安装版本的时候,模块的版本就会被记录再pipfile中,当然是没有版本要求,可以随意安装好之后再检查版本,一个个添加进去,问题不大。最正式的当然是安装的时候带着版本,一了百了。

创建Django项目

django-admin startproject django_test

进入项目内部创建app

使用tree命令会更清晰一点

此时如果在命令行的话,就可以启动虚拟环境了

利用Pycharm开发

当然了,在命令行使用pipenv的虚拟环境做肯定是一件很无语的体验,可以让它跟开发工具pycharm完美契合

首先打开此项目在pycharm里面

上面已经提过如何用命令获取虚拟环境路径

先将此虚拟环境添加进pycharm

选择添加:

选择已经存在的虚拟环境,粘贴刚刚的虚拟环境路径到输入框,选择bin里面的python或python3.6,点击确定,此时把虚拟环境添加到pycharm里面了。

多的模块包是基础包或者依赖包,可以通过命令

pipenv graph 查看目前安装的库及其依赖

最后编辑项目的配置选择此虚拟环境解析器就好了。

选择并应用

并且pycharm里面的python console也是依赖虚拟环境的,很方便。

补充

这里再补充一点没有讲到的点。

如何模拟创建之前利用其他工具创建好的虚拟环境

首先打开之前的项目,将之前项目的虚拟环境导出到requirements.txt文件

pip freeze > requirements.txt

将requirements.txt文件粘贴到到要创建环境的目录,执行命令

pipenv install -r requirements.txt

就完美创建虚拟环境了。

如何卸载某个包 

pipfile文件内的也会被删除。

删除所有软件包

可以发现pipfile没有更改。

最后的最后打印一下pipenv的命令说明给大家看一下,可以从这边获取更多的帮助。

Python pipenv的更多相关文章

  1. python pipenv 包管理

    原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 翻译者:Jiong 在thought ...

  2. Python | Pipenv官方推荐的python包管理工具

    原文地址:https://cloud.tencent.com/developer/article/1355672 Pipenv - 官方推荐的的python包管理工具. Pipenv是一款旨在将所有包 ...

  3. Pipenv项目化你的python应用

    目录 Pipenv 什么是pipenv 安装pipenv pipenv用法 使用pipenv开发项目 pipenv 结合 pyenv Pipenv 什么是pipenv Pipenv is a prod ...

  4. python安装虚拟环境pipenv

    python里如果多个多个项目同时引用包,就会涉及到包版本的问题,包不同版本管理的问题可以用虚拟环境来管理, 创建虚拟环境,这里是用官方推荐的pipenv来创建 先用pip命令行安装pipenv pi ...

  5. Python新利器之pipenv(转)

    pipenv 都包含什么? pipenv 是 Pipfile 主要倡导者.requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile.pip.click.requ ...

  6. Python新利器之pipenv

    前言 之前学习异步asyncio库的时候,因为asyncio库支持Python3.5以上的版本,而我的Ubuntu14.04只有Python3.4,虽然下载了Python3.6,但是想直接利用ipyt ...

  7. 包管理工具之Pipenv

    pipenv 都包含什么? pipenv 是 Pipfile 主要倡导者.requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile.pip.click.requ ...

  8. pipenv

    一. 1. 使用pip安装pipenv及其相关依赖 pip install pipenv 2. 将目录更改为包含你的Python项目的文件夹,并启动Pipenv cd my_project pipen ...

  9. pipenv 虚拟环境新玩法

    首先,虚拟环境本质是一个文件,是为了适应不同的项目而存在.pipenv相当于virtualenv和pip的合体. pipenv主要有以下特性: (1)pipenv集成了pip,virtualenv两者 ...

随机推荐

  1. Tomcat内存监控及调优

    JDK(1.6版本以上)自带有个jvisualvm工具.该工具是用来监控java运行程序的cpu.内存.线程等的使用情况.并且使用图表的方式监控java程序.还具有远程监控能力. 界面如下: 1.JD ...

  2. semantic ui框架学习笔记一

    面包屑导航 面包屑导航经常用于多个栏目下的内容管理,是web页面里比较常用的组合.例如: <div class="ui breadcrumb"> <a class ...

  3. POJ 1743 Musical Theme (Hash)

    Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 33820   Accepted: 11259 D ...

  4. 字符类型char、字符串与字符数组、字符数组与数据数组区别

    字符类型是以ASCII码值运算的:小写字母比相应的大写字母大32,其中A=65,a=97 Esc键 27(十进制).'\x1B'(十六进制).'\33'(八进制) 转义字符:\0 空字符     AS ...

  5. php中加密和解密

    项目要和第三方进行接口对接,所以数据的安全很重要.第一次自己设计并实现,学习记录下 网上查了很多资料,真的很深奥 对称加密: 双方共用一个约定好的密钥进行数据的加密和解密,但是当密匙丢失,数据将有泄露 ...

  6. slider插件制作轮播图

    html代码: <div id="banner_tabs" class="flexslider"> <ul class="slide ...

  7. REST_返回形式

    摘录: "Web resources" were first defined on the World Wide Web as documents or files identif ...

  8. Linux shell 自动删除n天前日志

    linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志 ...

  9. rocketmq在linux搭建双master遇到的坑

    我的环境 两台阿里云centos7服务器 首先,去官网下载解压包,解压. 然后进入bin目录,需要修改runserver.sh文件和runbroker.sh文件.因为rocketmq默认配置文件需要的 ...

  10. HDU - 4027 Can you answer these queries?(线段树区间修改)

    https://cn.vjudge.net/problem/HDU-4027 题意 给一个有初始值的数组,存在两种操作,T=0时将[L,R]的值求平方根,T=1时查询[L,R]的和. 分析 显然不符合 ...