如何让程序使用 Windows 注册表中未列出的 Python,而不是在 Windows 系统路径中搜索 PythonXX.dll?
鉴于此布局:
C:\dev\bin\python.exe
C:\dev\bin\python27.dll <-- our version
PYTHONHOME=C:\dev\apps\Python27 <-- DLLs, Lib, site-packages, etc.
C:\Windows\System32\Python27.dll <-- incompatible version!
我们需要其他程序来使用我们的 .dll,但他们首先找到不兼容的系统并失败:
SET PATH=C:\dev\bin
C:\dev\apps\3rdparty\foo.exe
<<fails to start>>
rename C:\Windows\System32\python27.dll C:\Windows\System32\python27.dll.orig
C:\dev\apps\3rdparty\foo.exe
<<runs just fine>>
删除或删除系统 .dll 不是一种选择,以上仅用于说明。我们可以将它整合到 foo.exedev\bin\
并因此与 python27.dll 一起工作,但这会引入包维护开销和许多我们真的不想处理的其他集成问题。