Pipenv允许使用系统Python而不是创建virtualenv来安装软件包:
$ pipenv install --system
但如果我这样做了,后续的pipenv run
将尝试创建虚拟环境,而不是使用system Python。特别是,我对使用Pipenv脚本很感兴趣:
$ pipenv run postinstall
Creating a virtualenv for this project...
有没有办法将系统Python解释器用于Pipenv脚本?
发布于 2021-06-24 00:23:16
据我所知,如果不使用pipenv
,在Pipfile
中运行脚本是不可能的
pipenv
的维护者几年前就决定不使用这样的特性(例如,请参阅Add a --system flag to pipenv run #2693的讨论),我找不到任何更新的东西来说明这一点。
如果要在系统安装中运行脚本,只需在终端中正常运行即可。如果您在没有虚拟环境的情况下工作,则不需要pipenv
来运行任何脚本。例如,如果您已经在script
部分定义了app = "uvicorn my_app.main:app --port 8080"
并进行了系统安装,那么之后您可以只在终端中调用uvicorn my_app.main:app --port 8080
。
我知道在Pipfile
中定义一些脚本/别名是很方便的。但是,如果您还需要在虚拟环境之外使用这些脚本,最好只创建实际的shell脚本。如果您想让pipenv run
功能继续工作,只需确保在Pipfile
中定义的这些脚本调用shell脚本,以避免代码重复。
发布于 2021-06-23 23:44:04
在设置pipenv时,您可以使用:pipenv --python 3.6
指定Python的版本,以使用Python3.6。
通过更改以下内容,也可以编辑Pipfile:
[requires]
python_version = "3.6.6"
添加到您想要的特定版本的Python。
如果您完成了所有这些操作,但是仍然无法从pipenv shell
中访问正确的Python版本,那么您可能需要检查您的.bashrc
文件,以确保您没有针对特定版本的Python的alias
。
https://stackoverflow.com/questions/68103049
复制相似问题