【问题标题】:from setuptools.errors import OptionError ImportError: cannot import name 'OptionError' from 'setuptools.errors'从 setuptools.errors 导入 OptionError ImportError:无法从 \'setuptools.errors\' 导入名称 \'OptionError\'
【发布时间】:2022-12-09 13:21:25
【问题描述】:
我正在尝试使用 cx_freeze 创建一个可执行文件。当我跑的时候
python setup.py build 我收到以下错误:
from setuptools.errors import OptionError
ImportError: cannot import name 'OptionError' from 'setuptools.errors'
我在蟒蛇工作。我尝试恢复到以前的 cx_freeze 版本,但没有成功。
这是一个新问题,两个月前,当我创建另一个虚拟环境时,我没有遇到这个问题。这就是为什么我猜测它可能是版本问题。但是我似乎找不到要安装的正确版本。
我还检查了其他相关问题,但没有找到适合我的解决方案。如果您有任何想法,请告诉我!
谢谢
【问题讨论】:
标签:
python
setuptools
cx-freeze
【解决方案1】:
如果没有附加信息、包版本、更完整的跟踪等,很难判断。
我在 cx_Freeze 的构建升级后遇到了同样的错误但是后已经安装了setuptools。将 setuptools 重新安装到最新版本 (65.6.3) 更正了我的错误。我正在运行cx_Freeze 6.13.1 版,如果它能帮助您解决错误。
通常,ImportError: cannot import name ... 之类的 Python 错误表示循环依赖,例如:https://stackoverflow.com/a/9252628/9975319 - 可能是导入顺序 cx_Freeze 确实在构建之间发生了变化,导致依赖项导入不正确,但我没有深入研究它。