问题描述
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
解决方案:
- 手动检查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
- 确实满足要求,将源代码中的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