Skip to content

中文翻译:<pypa/pipenv> 人类的 Python 开发工作流程 ❤️ 校对 中

Notifications You must be signed in to change notification settings

chinanf-boy/pipenv-zh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pypa/pipenv translate-svg

「 人类的 Python 开发工作流程 」

中文 | english


校对 🀄️

翻译的原文 与日期 最新更新 更多
commit ⏰ 2018-11-28 last 中文翻译

官方文档的生成器sphinx-build有点烦,所以就算了,且 markdown 要转 rst 的工具不怎完美,懒得折腾了

贡献

欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看

生活

If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰


Pipenv:人类的 Python 开发工作流程

image image image VSTS build status (Windows) VSTS build status (Linux) image image


Pipenv是一个旨在将最好的包装世界(bundler, composer, npm, cargo, yarn 等)带到 Python 世界的工具.在我们的世界里,Windows 是一等公民.

它会自动为您的项目创建和管理 virtualenv,以及在安装/卸载软件包时,从Pipfile添加/删除您的项目包。它也会生成至关重要的Pipfile.lock,用于包库的构建确定性。

image

Pipenv 试图解决的问题是多方面的:

  • 你不再需要分开使用pipvirtualenv(虚拟环境)。他们一起工作啦.
  • 管理requirements.txt文件可会是个问题,所以 Pipenv 使用即将到来的PipfilePipfile.lock,这对于基本用例来说是优越的。
  • 哈希随处可见。安全。自动暴露安全漏洞.
  • 让您深入了解您的依赖关系图(例如$ pipenv graph).
  • 通过加载.env文件简化开发工作流程。

您可以在浏览器中,快速使用 Pipenv:

Try in browser

目录

安装

如果您使用的是 MacOS,可以使用 Homebrew 轻松安装 Pipenv:

$ brew install pipenv

或者,如果你正在使用 Fedora 28:

$ sudo dnf install pipenv

否则,请参阅官方文档作为指示.

✨🍰✨

☤ 用户的推荐(english)

Jannis Leidel, former pip maintainer---

: Pipenv is the porcelain I always wanted to build for pip. It fits my brain and mostly replaces virtualenvwrapper and manual pip calls for me. Use it.

David Gang---

: This package manager is really awesome. For the first time I know exactly what my dependencies are which I installed and what the transitive dependencies are. Combined with the fact that installs are deterministic, makes this package manager first class, like cargo.

Justin Myles Holmes---

: Pipenv is finally an abstraction meant to engage the mind instead of merely the filesystem.

☤ 功能特性

  • 真正实现构建确定性,同时轻松指定仅是你想要的.
  • 生成,并检查锁定依赖项的文件哈希值.
  • 自动安装所需的 Pythons,如果pyenv是可用的.
  • 通过查找项目目录,以递归方式自动查找Pipfile.
  • 自动生成一个Pipfile,如果其不存在.
  • 在标准位置自动创建 virtualenv.
  • 当卸载/安装包时,在Pipfile中自动添加/删除包。
  • 自动加载.env文件,如果存在的话.

主要命令是installuninstall,和lock,生成一个Pipfile.lock。这些都是为了取代$ pip install用法,以及手动 virtualenv 管理(要激活 virtualenv,请运行$ pipenv shell).

基本概念

  • 当一个虚拟环境不存在时,将自动创建 virtualenv.
  • 没有参数传递给install, 则所有[packages]指定包将被安装.
  • 要初始化 Python 3 虚拟环境,请运行$ pipenv --three.
  • 要初始化 Python 2 虚拟环境,请运行$ pipenv --two.
  • 否则, virtualenv 默认为默认值.

其他命令

shell 将派生一个(spawn) virtualenv 激活的 shell 进程。
run 将运行来自 virtualenv 的给定命令,并转发任何参数(例如$ pipenv run python).
check 断言(asserts)当前环境正在满足 PEP 508 要求.
graph 将打印出所有已安装依赖项的漂亮图表.

Shell tab 补全

例如,用 fish,把它放在你的~/.config/fish/completions/pipenv.fish:

eval (pipenv --completion)

或者,用 bash,把它放在你的.bashrc要么.bash_profile:

eval "$(pipenv --completion)"

魔法一样的 shell 补充现已启用! 还有一个fish 插件,它会自动激活你的 子 shell!

Fish 是最好的 shell。你应该使用它.

☤ 用法

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --where          输出项目路径信息。
  --venv           输出 virtualenv 信息。
  --py             输出 Python解释器 信息。
  --envs           输出环境变量选项。
  --rm             删除 virtualenv。
  --bare           最小的输出。
  --completion     输出tab补全(待评估)。
  --man            显示 man 帮助页。
  --three / --two  在创建virtualenv时,使用Python 3/2。
  --python TEXT    指定virtualenv应该使用哪个版本的Python。
  --site-packages  为 virtualenv 启用 site-packages。
  --version        显示版本,并退出。
  -h, --help       显示此消息,并退出。


使用示例:
   > 创建一个使用 Python 3.7 的新项目, 如:
   $ pipenv --python 3.7

   > 删除 project virtualenv (注意是,从当前目录路径,推理来的):
   $ pipenv --rm

   > 为项目,安装 所有 dependencies  (包括 dev):
   $ pipenv install --dev

   > 创建一个 lockfile ,包括 pre-releases 版本:
   $ pipenv lock --pre

   > 展示一个,你已安装的依赖关系图:
   $ pipenv graph

   > 为了你已安装的依赖,检测 安全漏洞:
   $ pipenv check

   > 安装一个本地 setup.py 到, 你的 虚拟环境/Pipfile:
   $ pipenv install -e .

   > 运行一个 底层 pip 命令:
   $ pipenv run pip freeze

Commands:
  check      - 检查安全漏洞,和PEP 508标记
             - 由 Pipfile 提供由来。
  clean      - 卸载 Pipfile.lock中,所有未指定的软件包。
  graph      - 显示当前安装的依赖关系图信息。
  install    - 安装提供的包,并将它们添加到Pipfile,或者(如果没有)
             - 给出了包名参数,就从Pipfile安装所有包。
  lock       - 生成 Pipfile.lock。
  open       - 在编辑器中,查看给定模块。
  run        - 运行一个安装在virtualenv中的命令。
  shell      - 在virtualenv中生成一个shell进程。
  sync       - 安装 Pipfile.lock 中指定的所有包。
  uninstall  - 卸载输入的软件包,并将其从Pipfile中删除。

启用项目:

$ pipenv --where
/Users/kennethreitz/Library/Mobile Documents/com~apple~CloudDocs/repos/kr/pipenv/test

启用 virtualenv:

$ pipenv --venv
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre

启用 Python 解释器:

$ pipenv --py
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre/bin/python

安装包:

$ pipenv install
Creating a virtualenv for this project...
...
No package provided, installing all dependencies.
Virtualenv location: /Users/kennethreitz/.local/share/virtualenvs/test-EJkjoYts
Installing dependencies from Pipfile.lock...
...

To activate this project's virtualenv, run the following:
$ pipenv shell

指定 git 安装包:

您可以使用根据以下规则格式化的 URL ,从 git 和其他版本控制系统安装 pipenv 包:

<vcs_type>+<scheme>://<location>/<user_or_organization>/<repository>@<branch_or_tag>#<package_name>

唯一可选的部分是@<branch_or_tag>部分。通过 SSH 使用 git 时,您可以使用短关键字 vcs 和 scheme 别名git+git@<location>:<user_or_organization>/<repository>@<branch_or_tag>#<package_name>。请注意,在解析时,这会转换成git+ssh://git@<location>.

<vcs_type>有效值包括git,bzr,svn,和hg<scheme>有效值包括http,,https,ssh,和file。在特定情况下,您还可以访问其他方案(scheme)svn,可以与svn结合使用,还有bzr可以与sftplp结合使用。

请注意pipenv install -e强力推荐,您可以在可编辑模式下,安装任何版本控制的依赖项,以确保每次执行时,都可以在依赖项解析过程,使用存储库的最新副本,和包含所有已知的依赖项。

以下是安装requests包,位于 git 存储库的示例用法https://github.com/requests/requests.git,其标签为v2.19.1:

$ pipenv install -e git+https://github.com/requests/requests.git@v2.19#egg=requests
Creating a Pipfile for this project...
Installing -e git+https://github.com/requests/requests.git@v2.19.1#egg=requests...
[...snipped...]
Adding -e git+https://github.com/requests/requests.git@v2.19.1#egg=requests to Pipfile's [packages]...
[...]

你可以阅读更多关于pip's 实现了 vcs 的支持.

安装 dev 依赖项:

$ pipenv install pytest --dev
Installing pytest...
...
Adding pytest to Pipfile's [dev-packages]...

显示依赖关系图:

$ pipenv graph
requests==2.18.4
  - certifi [required: >=2017.4.17, installed: 2017.7.27.1]
  - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
  - idna [required: >=2.5,<2.7, installed: 2.6]
  - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]

生成一个锁文件:

$ pipenv lock
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Note: your project now has only default [packages] installed.
To install [dev-packages], run: $ pipenv install --dev

安装所有 dev 依赖项:

$ pipenv install --dev
Pipfile found at /Users/kennethreitz/repos/kr/pip2/test/Pipfile. Considering this to be the project home.
Pipfile.lock out of date, updating...
Assuring all dependencies from Pipfile are installed...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...

卸载一切:

$ pipenv uninstall --all
No package provided, un-installing all dependencies.
Found 25 installed package(s), purging...
...
Environment now purged and fresh!

使用 shell:

$ pipenv shell
Loading .env environment variables…
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.
$ ▯

☤ 文档

文档驻守在pipenv.org.

About

中文翻译:<pypa/pipenv> 人类的 Python 开发工作流程 ❤️ 校对 中

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages