我将描述基本过程,该过程是从链接@jcollado的演示中学到的。
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.prefix基于此进行设置。它使用类似的过程进行设置
sys.exec_prefix,然后
sys.path基于这些过程进行构造。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)