使用PIP安装Bunch库失败,请求解决方法
PIP安装Bunch库失败,请求解决方法
看起来你在Python 3.12环境下安装bunch库时碰了壁,我来帮你拆解问题并给出可行的解决办法~
先抓准你遇到的核心错误:
ValueError: invalid mode: 'rU'
这个问题的根源很明确:Python 3.12已经彻底移除了'rU'这个过时的文件打开模式(它原本是用来启用通用换行符支持的,而Python 3.0+之后默认就已经支持通用换行符了),但PyPI上现有的bunch 1.0.1版本是2017年发布的老版本,代码里还在使用'rU',所以在3.12环境下编译时直接报错。
接下来给你几个解决方向,按推荐程度排序:
方案1:使用兼容Python 3.12的替代库(最推荐)
bunch库已经多年没有维护了,建议直接切换到功能类似且活跃维护的替代库munch,它完全兼容Python 3.12,用法和bunch几乎一致,安装命令:
pip install munch
举个简单的用法例子,和bunch的体验无缝衔接:
from munch import Munch obj = Munch(name="test", value=123) print(obj.name) # 输出 test
方案2:修改bunch源码后本地安装
如果你一定要用原版bunch,可以手动修复源码里的兼容性问题后再安装:
- 先下载bunch的源码包到本地:
pip download bunch --no-deps - 解压下载好的
bunch-1.0.1.zip压缩包 - 打开解压目录里的
setup.py文件,找到使用open(..., 'rU')的代码行(对应报错里的第11行),把模式'rU'改成'r' - 进入解压后的目录,执行本地安装命令:
pip install .
方案3:降级Python版本到3.11或更低
如果你的项目对Python版本没有硬性要求,可以把Python降级到3.11或更早的版本,这些版本还保留了对'rU'模式的支持,之后再执行pip install bunch就能正常安装了。
最后附上你提供的完整错误日志供参考:
C:\Coding1\Coding>pip install --trusted-host pypi.python.org bunch Defaulting to user installation because normal site-packages is not writeable Collecting bunch Using cached bunch-1.0.1.zip (11 kB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [20 lines of output] Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.2288.0_x64__qbz5n2kfra8p0\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 353, in <module> main() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.2288.0_x64__qbz5n2kfra8p0\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.2288.0_x64__qbz5n2kfra8p0\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 118, in get_requires_for_build_wheel return hook(config_settings) ^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\aayus\AppData\Local\Temp\pip-build-env-dd90kil7\overlay\Lib\site-packages\setuptools\build_meta.py", line 334, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=[]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\aayus\AppData\Local\Temp\pip-build-env-dd90kil7\overlay\Lib\site-packages\setuptools\build_meta.py", line 304, in _get_build_requires self.run_setup() File "C:\Users\aayus\AppData\Local\Temp\pip-build-env-dd90kil7\overlay\Lib\site-packages\setuptools\build_meta.py", line 522, in run_setup super().run_setup(setup_script=setup_script) File "C:\Users\aayus\AppData\Local\Temp\pip-build-env-dd90kil7\overlay\Lib\site-packages\setuptools\build_meta.py", line 320, in run_setup exec(code, locals()) File "<string>", line 11, in <module> ValueError: invalid mode: 'rU' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip.
备注:内容来源于stack exchange,提问作者Aayush Arora
相关产品推荐
相关产品推荐

