[英]How can I know which python a pipenv venv is using?
我正在使用pipenv
管理依赖pipenv
。 我的系统上安装了几个 python。
我怎么知道哪个 python 安装已用于创建 venv ?
我尝试了以下方法:
pipenv --venv
-> 只返回 venv 位置,而不是 python 的原始位置
pipenv --py
-> 只返回 venv 中 python exe 的位置,而不是原始位置
pipenv run python -V
-> 只返回 python 的版本
在 virtualenv 文件夹中,有一个pyvenv.cfg
文件,其中包含有关用于虚拟环境的 Python 解释器的信息:
home = /usr
implementation = CPython
version_info = 3.8.5.final.0
virtualenv = 20.1.0
include-system-site-packages = false
base-prefix = /usr
base-exec-prefix = /usr
base-executable = /usr/bin/python3
正如 Python 文档所解释的: venv
运行此命令会创建目标目录(创建任何尚不存在的父目录)并在其中放置一个
pyvenv.cfg
文件,其中包含一个指向运行该命令的 Python 安装的home
键(目标的通用名称)目录是.venv
)。 它还创建一个 bin(或 Windows 上的Scripts
)子目录,其中包含 Python 二进制文件/二进制文件的副本/符号链接(适用于平台或环境创建时使用的参数)。 它还创建一个(最初为空的)lib/pythonX.Y/site-packages
子目录(在 Windows 上,这是Lib\\site-packages
)。 如果指定了现有目录,它将被重新使用。
sys.executable
保存当前正在运行的 python 可执行文件的路径。
因此,您可以使用以下行找到版本的路径:
pipenv run python -c "import sys; print(sys.executable)"
在 Windows 上,我可以在 powershell 上使用 which 来获取 pipenv 的路径。
> which pipenv
... Source
... D:/programs/python/Scripts/pipenv.exe
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.