下面这一串代码是 PyQt5 库下 __ init__.py 文件中的内容:
def find_qt():
import os, sys
qtcore_dll = '\\Qt5Core.dll'
dll_dir = os.path.dirname(sys.executable)
if not os.path.isfile(dll_dir + qtcore_dll):
path = os.environ['PATH']
dll_dir = os.path.dirname(__file__) + '\\Qt\\bin'
if os.path.isfile(dll_dir + qtcore_dll):
path = dll_dir + ';' + path
os.environ['PATH'] = path
else:
for dll_dir in path.split(';'):
if os.path.isfile(dll_dir + qtcore_dll):
break
else:
return
try:
os.add_dll_directory(dll_dir)
except AttributeError:
pass
find_qt()
del find_qt
通过分析上述代码可知,这一串代码的作用是寻找 Qt5Core.dll 的位置并加载,系统首先查看python编译器目录下有无 Qt5Core.dll 文件;如果没有则继续到当前目录下的\\Qt\\bin
目录下寻找,如果此目录下存在,则将此目录添加到path系统环境变量中;如果还没有,系统会遍历windows系统下的path系统环境变量,直到找到包含Qt5Core.dll 文件的环境变量路径。最后,根据Qt5Core.dll 文件的路径加载Qt5Core.dll文件