yen
你需要的最后一个Python环境管理器。
我们终于要结束这个XKCD了。
那么yen
能做什么呢?
-
只需一个命令即可立即运行任何Python版本:
$ python 'python':找不到命令 $ yen exec --python 3.12 正在下载3.12.3 ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0% • 17.4/17.4 MB • 29.1 MB/s Python 3.12.3 (main, 2024年4月15日, 17:43:11) [Clang 17.0.6 ] on darwin 输入"help"、"copyright"、"credits"或"license"以获取更多信息。 >>> exit() $ yen exec --python 3.12 # 后续使用时已缓存: Python 3.12.3 (main, 2024年4月15日, 17:43:11) [Clang 17.0.6 ] on darwin 输入"help"、"copyright"、"credits"或"license"以获取更多信息。 >>>
适用于Windows、MacOS和Linux(
libc
和musl
),支持Intel和ARM芯片。 -
快速创建
venv
:得益于microvenv
,yen
可以比内置的venv
模块更快地创建虚拟环境:$ yen create venv -p 3.9 已使用Python 3.9.18创建venv ✨ $ source venv/bin/activate (venv) $ python --version Python 3.9.18
注意:目前速度还不是很快,因为我发现了一个bug。正在修复中。
-
零依赖:无需安装Python,无需查看
apt
、homebrew
等,只需运行一个shell命令即可在本地设置yen
。 -
Python脚本管理:再也不用在全局Python环境中运行
pip install
来获取ruff
、awscli
等工具。
本质上,yen
让你可以用一个静态二进制文件替代各种Python环境管理工具,如pyenv
、pipx
和virtualenv
。
在任何机器上运行Python代码从未如此简单。
安装
运行以下命令获取yen
:
-
MacOS / Linux:
curl -L yen.tushar.lol/install.sh | sh
-
Windows:
使用cmd:
curl -L yen.tushar.lol/install.bat -o yen-install.bat yen-install.bat
或使用Powershell:
curl yen.tushar.lol/install.ps1 | Invoke-Expression
或者如果你喜欢,可以通过pip
获取:
pip install yen
或pipx
:
pipx run yen
是的,如果你已经有了
yen
,你可以执行yen run yen
,这也是可行的。 但不要这么做。
你也可以从GitHub releases下载二进制文件。
使用方法
$ yen list
可用的Python版本:
3.12.3
3.11.9
3.10.14
3.9.19
3.8.19
$ yen create venv -p 3.12
正在下载3.12.3 ━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0% • 17.4/17.4 MB • 12.4 MB/s
已使用Python 3.12.3创建venv ✨
$ yen install meowsay
已使用Python 3.12.3安装meowsay包 ✨
$ meowsay hello!
________
< hello! >
--------
\ |\---/|
\ | ,_, |
\_`_/-..----.
___/ ` ' ,\"\"+ \ sk
(__...' __\ |`.___.';
(_,...'(_,.`__)/'.....+
$ yen run --python 3.9 wttr
天气报告:米兰,意大利
\ / 局部多云
_ /"".-. 20 °C
\_( ). ↑ 4 km/h
/(___(__) 10 km
0.0 mm
$ wttr paris
天气报告:巴黎
\ / 晴朗
.-. +22(25) °C
― ( ) ― ↓ 7 km/h
`-' 10 km
/ \ 0.0 mm
默认情况下,Python会被下载到
~/.yen_pythons
。 你可以通过设置YEN_PYTHONS_PATH
环境变量来更改此位置。
本地开发 / 测试
-
运行
yen create venv
和venv/bin/activate
-
运行
pip install -r requirements-dev.txt
进行可编辑安装 -
验证你现在指向正确的
yen
:$ which yen /home/your_name/code/yen/venv/bin/yen
-
运行
pytest
来执行测试
要运行Rust测试:
- 编译Rust项目:
cd yen-rs && cargo build
- 运行
export YEN_RUST_PATH=./yen-rs/target/debug/yen-rs
- 运行
pytest
,确保测试数量已翻倍。
microvenv.py
和userpath.pyz
这两个文件被yen
使用,并由yen
安装脚本下载。
microvenv.py
只是这个文件的重命名。userpath.pyz
是通过在这个userpath分支中运行./build-standalone.sh
创建的。
类型检查
运行mypy .
创建并上传包到PyPI
确保在setup.cfg
中更新版本号。
然后运行以下命令:
pip install setuptools wheel twine
rm -rf build dist
python setup.py sdist bdist_wheel
然后使用twine上传到PyPI:
twine upload dist/*