pip wxpython gives ModuleNotFoundError: No module named 'attrdict'
Installing wxpython with pip gives the error ModuleNotFoundError: No module named 'attrdict'
Details:
py -3.10-64 -m pip install -U wxpython
Collecting wxpython Using cached wxPython-4.2.0.tar.gz (71.0 MB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [8 lines of output] Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "C:\Users\Bernard\AppData\Local\Temp\pip-install-dokcizpt\wxpython_662eefb4314c47eba7b194b4d07a8e18\setup.py", line 27, in <module> from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName File "C:\Users\Bernard\AppData\Local\Temp\pip-install-dokcizpt\wxpython_662eefb4314c47eba7b194b4d07a8e18\buildtools\config.py", line 30, in <module> from attrdict import AttrDict ModuleNotFoundError: No module named 'attrdict' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip. hint: See above for details.
What works
installing other packages works, e.g.
py -3.10-64 -m pip install -U mido Requirement already satisfied: mido in c:\python311\lib\site-packages (1.2.10)
Version info
Windows 10 22H2 pip 23.0.1 from C:\Python311\Lib\site-packages\pip (python 3.11)
Context
This is used in the fluidpatcher installer, I logged a bug here.
Update 1
Seems to be a known issue reported here: https://github.com/wxWidgets/Phoenix/issues/2296
Tried workaround of manually installing
py -3.10-64 -m pip install -U attrdict3
Which installs.
Then retried the wxpython install
py -3.10-64 -m pip install -U wxpython
Which fails, this time with a different error message
Collecting wxpython Using cached wxPython-4.2.0.tar.gz (71.0 MB) Preparing metadata (setup.py) ... done Requirement already satisfied: pillow in c:\python311\lib\site-packages (from wxpython) (9.4.0) Requirement already satisfied: six in c:\python311\lib\site-packages (from wxpython) (1.16.0) Requirement already satisfied: numpy in c:\python311\lib\site-packages (from wxpython) (1.24.2) Installing collected packages: wxpython DEPRECATION: wxpython is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559 Running setup.py install for wxpython ... error error: subprocess-exited-with-error × Running setup.py install for wxpython did not run successfully. │ exit code: 1 ╰─> [49 lines of output] C:\Python311\Lib\site-packages\setuptools\dist.py:771: UserWarning: Usage of dash-separated 'license-file' will not be supported in future versions. Please use the underscore name 'license_file' instead warnings.warn( C:\Python311\Lib\site-packages\setuptools\config\setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. warnings.warn(msg, warning_class) C:\Python311\Lib\site-packages\setuptools\dist.py:317: DistDeprecationWarning: use_2to3 is ignored. warnings.warn(f"{attr} is ignored.", DistDeprecationWarning) running install C:\Python311\Lib\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running build Will build using: "C:\Python311\python.exe" 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] Python's architecture is 64bit cfg.VERSION: 4.2.0 Running command: build Running command: build_wx Command '"C:\Python311\python.exe" -c "import os, sys, setuptools.msvc; setuptools.msvc.isfile = lambda path: path is not None and os.path.isfile(path); ei = setuptools.msvc.EnvironmentInfo('x64', vc_min_ver=14.0); env = ei.return_env(); env['vc_ver'] = ei.vc_ver; env['vs_ver'] = ei.vs_ver; env['arch'] = ei.pi.arch; env['py_ver'] = sys.version_info[:2]; print(env)"' failed with exit code 1. Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Python311\Lib\site-packages\setuptools\msvc.py", line 1120, in __init__ self.si = SystemInfo(self.ri, vc_ver) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python311\Lib\site-packages\setuptools\msvc.py", line 596, in __init__ vc_ver or self._find_latest_available_vs_ver()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python311\Lib\site-packages\setuptools\msvc.py", line 610, in _find_latest_available_vs_ver raise distutils.errors.DistutilsPlatformError( distutils.errors.DistutilsPlatformError: No Microsoft Visual C++ version found Finished command: build_wx (0m1.80s) Finished command: build (0m1.80s) WARNING: Building this way assumes that all generated files have been generated already. If that is not the case then use build.py directly to generate the source and perform the build stage. You can use --skip-build with the bdist_* or install commands to avoid this message and the wxWidgets and Phoenix build steps in the future. "C:\Python311\python.exe" -u build.py build Command '"C:\Python311\python.exe" -u build.py build' failed with exit code 1. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> wxpython
Update 2
Workaround: install Python 3.10.
51 Answer
For those who are still interested: I have successfully installed wxPython on Windows, under WinPython 3.11.1 (got it from SouceForge) with:
pip install -U attrdict3 pip install wxpython
After installation, in the \Lib\site-packages\wx
dir, you have to rename all files with no extension manually so they have the .pyd
extension.
ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJobm5tYGWAcX%2BOqaCpZaetvbrAx6ilZp%2BZq7K0ecyom66klaO8tbLOrqWdnaKnvLN5zahkpqeUqrmmec2apJ6cXZbBtb7Dopqt