实际上,Python 几乎完全相同:Pipenv。
Pipenv 是virtualenv 的包装器。
virtualenv 是 Python 的虚拟安装,安装了特定的依赖项,只有在需要时才能激活。
你可以从 pip 安装 Pipenv:
$ pip install --user pipenv
要使用 Pipenv,您可以通过指定 Python 版本在现有目录中对其进行初始化:
~/project$ pipenv --python 3.5
Creating a virtualenv for this project…
Pipfile: ~/project/Pipfile
Using /usr/local/bin/python3.5 (3.5.6) to create virtualenv…
⠴Running virtualenv with interpreter /usr/local/bin/python3.5
Using base prefix '/usr/local'
New python executable in ~/.local/share/virtualenvs/project-FR7x7nea/bin/python3.5
Also creating executable in ~/.local/share/virtualenvs/project-FR7x7nea/bin/python
Installing setuptools, pip, wheel...done.
Virtualenv location: ~/.local/share/virtualenvs/project-FR7x7nea
Creating a Pipfile for this project…
这将创建一个名为Pipfile 的文件,它将保留您的依赖项。
它看起来像这样:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
[dev-packages]
[requires]
python_version = "3.5"
您可以使用pipenv install 安装依赖项,就像使用pip 一样:
pipenv install numpy
这会将其添加到您的Pipfile,并将其版本冻结在Pipfile.lock。
您应该始终通过 pipenv 命令管理您的依赖项,而不是手动编辑这些文件。
另外,你可以传递给 pipenv 安装一个requirements.txt 文件,它与pip 具有相同的效果。
requirements.txt 文件是使用 pip 时的标准文件; Pipenv 需要一个尊重这种格式的人。
例如,以下是有效的最小 requirements.txt:
docopt
这只是意味着您想要任何版本的docopt。
如果您需要特定版本的依赖项,pip supports this as well。
你将它传递给 pipenv install 并带有 -r 标志:
~/project$ pipenv install -r requirements.txt
Requirements file provided! Importing into Pipfile…
Pipfile.lock (c2e94e) out of date, updating to (5a67c1)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c2e94e)!
Installing dependencies from Pipfile.lock (c2e94e)…
? ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 2/2 — 00:00:02
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
最后,您必须激活 Pipenv 封装的虚拟环境,才能有效访问依赖项。
这是通过pipenv shell 完成的(尽管您可以使用pipenv run <cmd> 执行单个命令):
~/project $ pipenv shell
(project) ~/project$ python
Python 3.5.6 (default, Dec 3 2018, 12:12:20)
[GCC 8.2.1 20180831] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>
这样做的好处是,您可以从 Github 克隆一个随机 repo,初始化 Pipenv,然后运行 pipenv install -r requirements.txt 以准备好运行项目的干净环境(这里需要注意的是,下载所有依赖项可能需要一段时间)。
依赖项只会安装在虚拟环境中,保持您的其他虚拟环境和主机环境干净。
更多见解在这里:https://docs.python-guide.org/dev/virtualenvs/