在使用uv的时候,uv在每次uv run之前都会检查uv.lock和pyproject.toml文件,可能会uninstall 再install一些包。
如果是单进程跑uv run这本身无妨,但是对于多进程的跑的话这就足够致命了。因为时间前后的关系,后面跑的时候可能前面的进程刚刚uninstall完某个包,导致后面的进程找不到这个包。解决办法是:
不用uv run而改用.venv里面的bin里面的python解释器来执行脚本。
例如:
PYTHON=.../.venv/bin/python
$PYTHON -m torch.distributed.run ...