找回密码
 会员注册
查看: 30|回复: 0

PythonAttributeErrormodule‘distutils‘hasnoattribute‘version‘

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-4 18:34:13 | 显示全部楼层 |阅读模式
1,问题在安装或运行使用PyTorch的Python代码时,您可能会看到一个错误:AttributeError:module'distutils'hasnoattribute'version'1本文将帮助您理解发生此错误的原因以及如何解决此错误。2,为什么AttributeError:module‘distutils’hasnoattribute‘version’发生?当你尝试从distutils模块访问version属性时发生此错误,如下所示:fromsetuptoolsimportdistutilsprint(distutils.version)#❌123发生此错误是因为setuptools版本59.6.0中的更改以某种方式中断了对version属性的调用。而且,在最新版本中,version属性似乎已经从distutils中删除。您可以通过运行dir()函数来确认这一点:fromsetuptoolsimportdistutilsprint(distutils.__version__,dir(distutils))123'运行运行输出如下所示:3.10.9['_','__builtins__','__cached__','__doc__','__file__','__loader__','__name__','__package__','__path__','__spec__','__version__','_log','archive_util','cmd','command','config','core','debug','dep_util','dir_util','dist','errors','extension','fancy_getopt','file_util','filelist','importlib','log','spawn','sys','util']123456如你所见:输出中只显示了__version__属性。已知在导入或安装PyTorch包时会发生此错误,在PyTorch版本1.11.0中已经修复了该错误。3,如何解决AttributeError:module‘distutils’hasnoattribute‘version’如果您正在使用PyTorch,则可以通过升级Torch包来解决此错误。运行以下命令之一升级torchpackage:#Ifyouusepip:pipinstall--upgradetorch#Forpip3:pip3install--upgradetorch#Ifyouuseconda:condaupdatepytorch12345678如果你想要测试pytorch的版本version1.11.0:#Ifyouusepip:pipinstalltorch==1.11.0#Forpip3:pip3installtorch==1.11.0#Ifyouuseconda:condainstallpytorch=1.11.012345678一旦升级了PyTorch版本,错误就会消失。如果您使用的其他Python包没有解决这个错误,那么可以将setuptools版本固定到59.5.0,这样distutils.version仍然可以工作。使用下列命令之一来固定setuptools包版本:#Ifyouusepip:pipinstallsetuptools==59.5.0#Forpip3:pip3installsetuptools==59.5.0#Ifyouuseconda:condainstallsetuptools=59.5.012345678如果conda回复PackagesNotFoundError,你需要安装pip在这个conda环境中,然后再使用pip来安装setuptools:#Incondaenvironment,installpip:condainstallpip#Theninstallsetuptools:pipinstallsetuptools==59.5.012345distutils.version模块现在可以访问了。或者,您也可以将import语句调整为importdistutils.version.LooseVersion,如果你可以访问源码:#from:fromsetuptoolsimportdistutils#to:fromdistutils.versionimportLooseVersion12345'运行运行虽然从setuptools导入distutils会导致错误,但导入LoseVersion类可以正常工作4,总结当您尝试从distutils模块访问version属性时,会发生AttributeError:module‘distutils’hasnoAttribute‘version’错误。最新版本的distutils模块不再具有dir()函数输出中看到的版本类,因此您需要导入LoosVersion类或将setuptools包降级到59.5.0版。如果在运行PyTorch时看到此错误,请将PyTorch包升级到1.11.0或更新版本。5参考:【PythonAttributeError:module‘distutils’hasnoattribute‘version’】https://sebhastian.com/python-attributeerror-module-distutils-has-no-attribute-version/#google_vignette
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-12 18:06 , Processed in 0.746000 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表