我正在使用
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
)。它还创建一个 bin(或 Windows 上的.venv
)子目录,其中包含 Python 二进制文件的副本/符号链接(适合环境创建时使用的平台或参数)。它还创建一个(最初为空)Scripts
子目录(在 Windows 上,这是lib/pythonX.Y/site-packages
)。如果指定了现有目录,则会重新使用该目录。Lib\site-packages
sys.executable
保存当前正在运行的 python 可执行文件的路径。
因此,您可以使用以下行找到您的版本的路径:
pipenv run python -c "import sys; print(sys.executable)"
对于 Windows PowerShell:
where.exe python
C:\Users\PC\.virtualenvs\Django_api-czJ1cM9j\Scripts\python.exe C:\Program Files\Python312\python.exe
在Windows上我可以在powershell上使用它来获取pipenv的路径。
> which pipenv
... Source
... D:/programs/python/Scripts/pipenv.exe