项目级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_ENV 和 PATH,并将控制权转交给指定的 subprocess 命令。这对许多Python项目工具来说已经足够,包括Python启动器、Poetry 和 Pipenv。支持 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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5234a20427ab2813a8a0bf1e9112d4d854b1b0502b3e63d17c1b1a3c4be9340e |
|
MD5 | cd0919223612d04d3e659557226f8024 |
|
BLAKE2b-256 | 1eb64cb6568b9fbfcc972a68c48f8b9dad2d6309fef298777523776c9a33bcd7 |
pyem-2.1.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1970b55569d21e80734c428d6c3726aa6f2620c8c547c95bb0a5f3faef8e3eb2 |
|
MD5 | 2fbfcdab4ad23e35ee24d792995f75c2 |
|
BLAKE2b-256 | c1e098abd4c2db9f684554306b45ef0855913e4e51f36fac74c63f393cc82080 |