gpt4 book ai didi

python - 从脚本中使用 Python venv

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:06 26 4
gpt4 key购买 nike

创建虚拟环境后,如果您有一个 shell 脚本调用:

/home/user/venv/python3 <scriptname>

它如何知道 virtualenv 的 site-packages 文件夹在哪里,而没有源激活到 virtualenv(从而改变路径)?

最佳答案

这种魔法发生在 sys.prefix 上.

Note: If a virtual environment is in effect, this value will be changed in site.py to point to the virtual environment. The value for the Python installation will still be available, via base_prefix.

site 模块在解释器启动时被导入(从系统路径!),site-packages dirs are appended to sys.path with the sys.prefix .

您可以通过执行带有 -S 标志的 python REPL 来禁用导入站点模块来自己验证这一点。您会发现安装在 virtualenv 中的包不再通过 import 语句可见(假设它们尚未安装在系统站点包中)。

您的下一个问题可能是“但是站点本身如何知道我们是否在 venv 中?”答案是heuristic :

A virtual environment is a directory tree which contains Python executable files and other files which indicate that it is a virtual environment.

如果名为“pyvenv.cfg”的文件存在于 sys.executable 之上的一个目录中,sys.prefixsys.exec_prefix 设置为该目录。已实现 here .

关于python - 从脚本中使用 Python venv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49659422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com