python教程—virtualenv是如何工作的?-Python实用宝典

python教程—virtualenv是如何工作的?

我检查了激活脚本,在我看来它所做的一切就是:virtualenv如何通过这些提供神奇的虚拟环境?我错过了什么?

我检查了激活脚本,在我看来它所做的一切是:

  • 设置VIRTUAL_ENV env
  • 在PATH前面追加$VIRTUAL_ENV/bin

virtualenv如何通过这些来提供神奇的虚拟环境呢?我错过了什么?

回答

我将描述我从@jcollado链接到的presentation中学到的基本过程。

当Python启动时,它查看二进制文件的路径及其前缀。

假设你的virtualenv是/home/blah/ scratch。Python进程知道它是从/home/blah/scratch/bin/python执行的(它通常只是您的系统Python二进制文件/usr/bin/python的副本),并且它知道自己的版本X。因为它被编译成Y。然后Python按照以下顺序查找lib/pythonX.Y/os.py:

    /home/blah/scratch/bin/lib/pythonX.Y/os.py /home/blah/scratch/lib/pythonX.Y/os.py <-- this file should exist /home/blah/lib/pythonX.Y/os.py /home/lib/pythonX.Y/os.py /lib/pythonX.Y/os.py

它停在/home/blah/scratch/lib/pythonX.Y/os.py,因为它是实际存在的第一个文件。如果没有,Python将继续查找。然后设置sys。前缀以此为基础。它使用类似的过程来设置sys。exec_prefix,然后sys。路径就是在此基础上构造的。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论