跳转到主要内容

项目级Python虚拟环境管理工具。

项目描述

PyEM管理项目本地的多个虚拟环境。它提供对创建、删除、切换以及针对各种Python解释器创建的虚拟环境运行命令的快捷方式。

安装

我建议使用 pipx

pipx install pyem

# If you need to support Python without the builtin venv module.
pipx inject pyem virtualenv

操作示例

pyproject.toml 文件之外添加虚拟环境

# Based on a command.
pyem venv add python3.7

# Based on interpreter found by the Python launcher.
pyem venv add 3.6

# Based on an executable.
pyem venv add /usr/local/bin/pypy3

第二种方案依赖于 Python启动器 来定位解释器。如果您在Windows上使用官方安装程序(并且没有明确选择不安装它),则默认会安装此工具。对于其他平台,可以使用Brett Cannon的UNIX Python启动器作为替代。

列出管理的虚拟环境

$ pyem venv list
  Quintuplet
=============================================
  cpython-3.6-darwin-x86_64-f14a3513
  cpython-3.7-darwin-x86_64-dbe83ac5
* pypy-3.6-darwin-x86_64-dc1298a1

设置活动虚拟环境

$ pyem venv set 3.7
Switched to cpython-3.7-darwin-x86_64-dbe83ac5

$ pyem venv set 3.6
Error: name '3.6' is ambiguous; choose from:
  cpython-3.6-darwin-x86_64-f14a3513
  pypy-3.6-darwin-x86_64-dc1298a1

$ pyem venv set cpython-3.6
Switched to cpython-3.6-darwin-x86_64-f14a3513

在虚拟环境中运行命令

$ pyem poetry run python -c "import sys; print(sys.executable)"
/tmp/exampleproject/.venvs/bin/python

$ pyem --spec=pypy-3.6 pipenv run pypy3 -c "import sys; print(sys.executable)"
/tmp/exampleproject/.venvs/bin/pypy3

这是如何工作的?

PyEM设置环境变量 VIRTUAL_ENVPATH,并将控制权转交给指定的 subprocess 命令。这对许多Python项目工具来说已经足够,包括Python启动器、PoetryPipenv。支持 venv 的Python解释器(例如CPython 3.3或更高版本)也应无缝集成。

技巧和窍门

Windows上的Flit

Flit 在Windows上安装到Python 3.7.2或更高版本时,检测活动虚拟环境有问题。可以使用以下解决方案(需要Python启动器)

$ pyem flit install --python=py

从Flit 2.1开始,您还可以设置环境变量 FLIT_INSTALL_PYTHON=py 以达到相同的效果。我认为即使您不使用PyEM,这也是一个好的默认设置;它比安装到Flit的环境更有意义。

这个问题已在master分支中修复(takluyver/flit#300),因此Flit版本在2.1.0之后无需此 workaround。

没有pyproject.toml的项目

如果你的项目不使用pyproject.toml,你可以显式指定项目根目录

pyem --project=./myproject add 3.8

只有在创建虚拟环境时才需要--project选项。后续命令应自动选择.venvs目录,并使用其位置作为项目根目录,即使没有pyproject.toml文件。

在项目根目录外调用虚拟环境

如果你想在项目根目录外访问虚拟环境,--project选项也很方便。以下命令列出了another-project的3.7虚拟环境中的已安装包

pyem --project=../another-project --python=3.7 pip list

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

pyem-2.1.0.tar.gz (14.5 kB 查看哈希值)

源代码

构建分发

pyem-2.1.0-py3-none-any.whl (17.6 kB 查看哈希值)

Python 3

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面