AttributeError: module ‘distutils‘ has no attribute ‘version‘

问题描述

run

(unidexgrasp) tianyu@tianyu:~/UniDexGrasp/dexgrasp_generation$
python ./network/train.py --config-name ipdf_config --exp-dir ./ipdf_train

Error:

Traceback (most recent call last):
  File "./network/train.py", line 4, in <module>
    from torch.utils.tensorboard import SummaryWriter
  File "/home/tianyu/.conda/envs/unidexgrasp/lib/python3.8/site-packages/torch/utils/tensorboard/__init__.py", line 4, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'distutils' has no attribute 'version'

原因分析:

File “./network/train.py”, line 4
如下命令,导入tensorboard,报错

    from torch.utils.tensorboard import SummaryWriter

File “/home/tianyu/.conda/envs/unidexgrasp/lib/python3.8/site-packages/torch/utils/tensorboard/init.py”, line 4
第4-7行代码的本意是确保tensorboard版本要高于1.15(含)

1
2  import tensorboard from setuptools import distutils
3
4  LooseVersion = distutils.version.LooseVersion
5
6  if not hasattr(tensorboard, '__version__') or LooseVersion(tensorboard.__version__) < LooseVersion('1.15'):
7     raise ImportError('TensorBoard logging requires TensorBoard version 1.15 or above')
8
9  del distutils 
10 del LooseVersion 
11 del tensorboard
12
13 from .writer import FileWriter, SummaryWriter  # noqa: F401 
14 from tensorboard.summary.writer.record_writer import RecordWriter  # noqa: F401

解决方案:

  1. 手动检查tensorboard版本是否高于1.15:

命令行输入conda list

conda list

or 在python下查看tensorborad的版本

from tensorboard import version
print(version.VERSION)
(unidexgrasp) tianyu@tianyu:~/UniDexGrasp/dexgrasp_generation$ python
Python 3.8.18 (default, Sep 11 2023, 13:40:15) 
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tensorboard import version
>>> print(version.VERSION)
2.11.2
  1. 确实满足要求,将源代码中的4-7, 10行注释掉
1
2  import tensorboard from setuptools import distutils
3
4 # LooseVersion = distutils.version.LooseVersion
5
6 # if not hasattr(tensorboard, '__version__') or LooseVersion(tensorboard.__version__) < LooseVersion('1.15'):
7 #    raise ImportError('TensorBoard logging requires TensorBoard version 1.15 or above') 
8
9  del distutils 
10 #del LooseVersion 
11 del tensorboard
12
13 from .writer import FileWriter, SummaryWriter  # noqa: F401 
14 from tensorboard.summary.writer.record_writer import RecordWriter  # noqa: F401

参考
https://blog.csdn.net/weixin_44115162/article/details/128612465

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值