首页 > 解决方案 > 在系统 python 上运行 pipenv 脚本

问题描述

Pipenv 允许使用系统 Python 而不是创建 virtualenv 来安装包:

$ pipenv install --system

但是如果我这样做,后续pipenv run的 s 会尝试创建 virtualenv 而不是使用系统 Python。特别是,我对使用 Pipenv 脚本很感兴趣:

$ pipenv run postinstall
Creating a virtualenv for this project...

有没有办法为 Pipenv 脚本使用系统 Python 解释器?

标签: pythonpipenv

解决方案


据我所知,如果您不使用任何脚本,则不可能在Pipfile其中运行脚本pipenv

pipenv几年前决定反对这样一个特性的维护者(例如,参见Add a --system flag to pipenv run #2693中的讨论),我找不到任何更新的东西。

如果要在系统安装中运行脚本,只需在终端中正常运行即可。如果您在没有虚拟环境的情况下工作,则不需要pipenv运行任何脚本。例如,如果您已app = "uvicorn my_app.main:app --port 8080"在该script部分中定义并进行系统安装,则之后您可以uvicorn my_app.main:app --port 8080在终端中调用。

我知道在Pipfile. 但是,如果您在虚拟环境之外也需要这些,最好只创建实际的 shell 脚本。而如果你想拥有pipenv run继续工作的功能,只要确保这些脚本在Pipfile调用 shell 脚本时定义,以避免代码重复。


推荐阅读