pip wxpython 出现 ModuleNotFoundError: 找不到名为 'attrdict' 的模块。

7

使用pip安装wxpython时出现错误ModuleNotFoundError: No module named 'attrdict'

详情:

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.

可行的操作

安装其他软件包是可行的,例如:

py -3.10-64 -m pip install -U mido Requirement already satisfied: mido in c:\python311\lib\site-packages (1.2.10)

版本信息

Windows 10 22H2 pip 23.0.1 from C:\Python311\Lib\site-packages\pip (python 3.11)

上下文

这是在 fluidpatcher 安装程序中使用的,我在这里记录了一个错误 here

更新 1

似乎这是一个已知问题,可以在此处报告:https://github.com/wxWidgets/Phoenix/issues/2296

尝试手动安装的解决方法。

py -3.10-64 -m pip install -U attrdict3

安装哪个呢?
然后重试wxPython的安装。
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) ... 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

更新2

解决方法:安装Python 3.10。


1
在问题追踪器中发现了问题:https://github.com/wxWidgets/Phoenix/issues/2296 - Bernard Vander Beken
1
那么,安装了 attrdict3 解决了你的问题吗? - rickhg12hs
1
仅解决了下一个错误,请参见问题的更新1。 - Bernard Vander Beken
"未找到 Microsoft Visual C++ 版本..." 我在 Linux 系统的虚拟环境中安装了 wxpython,它花费了相当长的时间进行编译。 - rickhg12hs
我仍然在Python 3.10.10中遇到这个问题。也尝试过3.11。 - Marcel
1个回答

3
对于那些仍然感兴趣的人:我已经成功地在Windows下安装了wxPython,在WinPython 3.11.1下(从SourceForge获取)使用以下方法:
pip install -U attrdict3
pip install wxpython

安装完成后,在 \Lib\site-packages\wx 目录下,您需要手动将所有没有扩展名的文件重命名为带有 .pyd 扩展名的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接