#python #environments #virtual #ad-hoc #offline #script #mode

app spyn

创建按需Python虚拟环境的小工具

9个版本 (5个破坏性更新)

0.7.0 2024年6月17日
0.6.0 2024年3月22日
0.5.0 2024年3月21日
0.4.0 2024年3月17日
0.2.1 2024年3月15日

503网络编程

每月32次下载

MIT 许可证

17KB
321

什么是Spyn?

Spyn是一个用于创建按需、临时的Python应用程序虚拟环境的小工具。

Spyn深受fades的启发,但试图改进同样的概念

  1. Spyn是用Rust编写的,作为二进制可执行文件提供,这意味着您不需要通过脚本包装器安装它,也不会污染本地的Python安装。它也不会在系统Python版本升级或重新安装时损坏。由于这个原因,Spyn的运行速度也更快
  2. Spyn使用uv来创建和管理虚拟环境。这使得它可以在几秒钟内创建虚拟环境,并且不太可能遇到pip中断和故障。它还支持离线模式运行,这意味着它只使用其缓存,并通过uv避免访问网络。

安装

spyn需要uv才能正确运行。请确保按照官方文档中描述的方式安装它。

如果您在macOS上,最方便的方式是使用homebrew,或者运行以下命令

$ curl -LsSf https://astral.sh/uv/install.sh | sh

您可以使用 cargo install 来安装 spyn

$ cargo install spyn

使用方法

您可以使用spyn运行Python脚本,并指定它需要的依赖项

$ spyn -d requests ./my_script.py

您还可以在脚本中标记要由spyn安装的依赖项

$ cat my_script.py
import os

import requests # spyn

print("Hello, World!")
$ spyn ./my_script.py

spyn甚至接受标记有fades的行,以提供与fades的向后兼容性!

如果您想要一个具有自定义依赖项的交互式会话,spyn支持--ipython标志,将您放入一个带有您指定的依赖项的IPython外壳中

$ spyn --ipython -d requests
Using Python 3.11.2 interpreter at: /Users/rotemy/src/oss/spyn/.venv/bin/python3
Creating virtualenv at: /var/folders/bs/wqjbrbn948j78gb4303rjdcc0000gn/T/spyn.FDlEhIQvFyXR
Activate with: source /var/folders/bs/wqjbrbn948j78gb4303rjdcc0000gn/T/spyn.FDlEhIQvFyXR/bin/activate
Resolved 21 packages in 451ms
Installed 21 packages in 82ms
...

In [1]: import requests
In [2]: 

依赖项

~10–39MB
~609K SLoC