Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Description
Bug report
When updating Python 3.11.0 -> 3.11.1 (or reverse to reverse the issue), the...\Python311\DLLs folder is suddenly not added anymore to sys.path in embedded startup due to somehow impaired search path algorithm. E.g. inPythonwin.exe. And thus things like ctypes, socket, hashlib etc. cannot be imported. But...\Python311\Lib and all the other paths are correctly there, just the DLLs path missing.
The same was observed e.g. here:
mhammond/pywin32#1995
The issue is also in current Py 3.12.0a3 at least.
The issue seems not to be withpython.exe startup.
The issue also disappears when I monkey-copy thePythonwin.exe next topython.exe and use that copy.
Note:Pythonwin.exe locates pythonNN.dll dynamically and does the usual Python init.
And extra confusing: in the registry there is aPythonPath key likeC:\Python312\Lib\;C:\Python312\DLLs\ :
I always thought that the DLLs path is taken from there. But when I edit-damage that likeC:\Python312\Lib\;C:\Python312\DLLsx\ e.g., it has no effect :-)
The correct DLLs dir (only) is still in the sys.path in the above working cases, andDLLsx also does not appear on sys.path in the non-working cases.
Reproduce:
- Win10
- pip install pywin32; run Pythonwin.exe
import ctypesand/or inspect sys.path after start.
Linked PRs
- gh-100320: Fix path calculations on Windows when python.exe is moved outside of the normal location #100947
- [3.11] gh-100320: Fix path calculations on Windows when python.exe is moved outside of the normal location (GH-100947) #101082
- [3.11] gh-100320: Fix path calculations on Windows when python.exe is moved outside of the normal location (GH-100947) #101080