资讯专栏INFORMATION COLUMN

pipenv 使用简介

A Loity / 2171人阅读

摘要:偶然发现后试用了一下,感觉它的工作流相比之前虚拟环境环境加的方式更加简单方便。还支持自定义命令,这对于某些开发过程中经常使用的命令来说非常方便。

之前在开发时一直使用 conda 使用作为虚拟环境管理工具,但有时候会经常会临时性的需要一个虚拟环境,
如果使用 conda create 创建一个新环境,耗时不说,有时候还忘了删除,最后系统里一堆的虚拟环境。
偶然发现 pipenv 后试用了一下,感觉它的工作流相比之前虚拟环境环境加 requirements.txt
的方式更加简单方便。

安装

pipenv 最好和 Python3 一起使用

最简单的方式是通过 pip 安装

pip3 install pipenv

如果是 mac 用户也可以通过 Homebrew 安装

brew install pipenv

如果没有安装 pip 可以通过以下方式安装

https://raw.githubusercontent.com/kennethreitz/pipenv/master/get-pipenv.py | python
使用 创建新项目
mkdir myproject
pipenv install

这会在 myproject 文件下创建 PipfilePipfile.lock 文件,同时创建虚拟环境
虚拟环境名称为 pipenv 加项目路径哈希值,如 pipenv-7BgKv-oX

ll
-rw-r--r-- 1 rookie rookie 138 4月  20 20:24 Pipfile
-rw-r--r-- 1 rookie rookie 453 4月  20 20:24 Pipfile.lock

虚拟机环境默认位于 ~/.local/share/virtualenvs/,由于 pipenv 通过路径名哈希值与虚拟环境
建立映射关系,因此如果移动项目会导致虚拟环境不可用。可以通过在 .bashrc 添加
export PIPENV_VENV_IN_PROJECT=1 让 pipenv 在项目文件中创建虚拟环境,这时候虚拟环境位于 myproject/.venv 文件夹下。

如果项删除虚拟环境,在项目顶层目录下运行

pipenv --rm

如果要指定 Python 版本,可以通过 --python 完成,如我要安装 python3.7 的虚拟环境

pipenv --python 3.7
配置文件
# cat Pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.6"

[[source]] 模块指定了 pip 源位置,通常国内 pip 源加快下载速度

[[source]]
name = "tuna"
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
verify_ssl = true

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.6"
安装和卸载 packages

你可以编辑 packages, 添加项目需要的 Python 库,如 requests="**",甚至可以指定不同
平台下的包配置,详细配置参考 Advanced Usage of Pipenv
不过你可以通过pipenv install requests
来安装,pipenv 将会自动更新 PipfilePipfile.lock
[dev-packages] 则是一些开发依赖但不是项目依赖包的存放目录,如 pylint 等 pep8 检查工具
可以在安装时指定 pipenv install --dev将某个包声明为 dev-package
卸载 package 也很简单

pip uninstall

如果通过 pipenv 命令安装和卸载 package,安装或卸载完成后还会更新 Pipfile.lock 文件,有时候会卡在这个步骤。通常可以 ctrl+c 强制推出,删除 Pipfile.lock, 然后

pipenv lock

重新生成该文件

进入和退出虚拟环境

进入虚拟环境

cd myproject

pipenv shell

退出虚拟环境

pipenv exit
高级用法

有时候某些 package 需要指定特定的 pip 源,可以通过如下方式指定,非常简便

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[[source]]
url = "http://pypi.home.kennethreitz.org/simple"
verify_ssl = false
name = "home"

[dev-packages]

[packages]
requests = {version="*", index="home"}
maya = {version="*", index="pypi"}
records = "*"

有时候需要生成 requirements.txt 文件

pipenv lock -r

如果只需要生成 dev-pakcages 列表,也很简单

pipenv lock -r --dev

自动载入环境变量文件。如果 .env 文件在项目根目录下,pipenv shellpipenv run
会自动载入文件中的环境变量。

$ cat .env
HELLO=WORLD

$ pipenv run python
Loading .env environment variables…
Python 2.7.13 (default, Jul 18 2017, 09:17:00)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ["HELLO"]
"WORLD"

pipenv 还支持自定义命令,这对于某些开发过程中经常使用的命令来说非常方便。
Pipfile 中添加 [scripts]

[scripts]
printspam = "python -c "print("I am a silly example, no one would need to do this")""

通过 pipenv run 即可运行自定义命令,如

pipenv run echospam "indeed"
I am really a very silly example indeed

更多高级用户可以参考 官方文档


最后欢迎关注我的 Blog-PrivateRookie

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43627.html

相关文章

  • 使用pipenv代替virtualenv管理python包

    摘要:前言第一次接触到是因为看到董明伟大神的使用管理你的项目,之前可能和大家的选择类似使用或者来管理的包环境。是针对的包的多版本管理,通过将包安装到一个模块来作为的包虚拟环境,通过切换目录来实现不同包环境间的切换。 前言 第一次接触到 pipenv 是因为看到@董明伟大神的《使用pipenv管理你的项目》,之前可能和大家的选择类似使用 virtualenv 或者 pyenv 来管理 pyth...

    whidy 评论0 收藏0
  • Python小世界:项目虚拟环境配置的N种方法

    摘要:三个常用的虚拟环境配置来汇总,如有不适之处,还望各位大佬指正。一个项目对应一个,支持开发环境与正式环境区分。其使用创建环境,以便分隔使用不同版本和不同程序包的项目。 前言 和其他大多数现代编程语言一样,Python对包和 模块的下载、存储以及管理有其自己的一套方法。但是当我们同时开发多个项目工程的时候,不同的项目会将第三方的包存放在相同的路径下。这就意味着,如果有两个工程依赖同一个包,但是所...

    kidsamong 评论0 收藏0
  • 快速入门Python 最新最流行的pipenv虚拟环境

    摘要:的把最新型最先进的虚拟环境吵得火热。进入后,你会发现用也是能生效的。但是注意进入环境后千万不要用退出,而应该用退出。最佳解决方案是因为这种在其他地方也常见,一般都是没有在环境里安装的问题。 2018的PyCon把最新型最先进的Python虚拟环境pipenv吵得火热。看了下介绍感觉真的很好用,它在virtualenv的基础上包装了一些更便捷的功能,解决了很多很多virtualenv欠缺...

    roundstones 评论0 收藏0
  • Pipenv – 超好用的 Python 包管理工具

    摘要:安全,广泛地使用校验,能够自动曝露安全漏洞。部分用来设置仓库地址,部分用来指定项目依赖的包,部分用来指定开发环境需要的包,这样分开便于管理。参考链接新款虚拟环境工具详解笔记使用指南官方推荐的包管理工具 pipenv 是什么 pipenv 是 python 官方推荐的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,类似于 php 中的 composer...

    tunny 评论0 收藏0
  • 比virtuslenv更好用的虚拟环境pipenv

    摘要:提示如果你对的用法以及虚拟环境的概念不熟悉的话,可以通过专栏的旧文出发之旅进行简单的认识。为什么使用会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作。 什么是Pipenv Pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而...

    wing324 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<