网络:DLNR
环境:win10+pytorch
conda list
setuptools 65.0.0 pypi_0 pypi
typing-extensions 4.6.0 pypi_0 pypi
通过实验试出是setuptools版本太高,但不知道为什么?报错如下,哪位同志看到知道可留言讨论下~~~
ps.很多其他的报错也是setuptools版本太高引起的,一直不知道为什么~ 留个坑先~
C:\Users\26735\anaconda3\envs\pytorch\python.exe D:/DLNR/train_stereo.py
Traceback (most recent call last):
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_vendor\importlib_metadata\_compat.py", line 9, in <module>
from typing import Protocol
ImportError: cannot import name 'Protocol' from 'typing' (C:\Users\26735\anaconda3\envs\pytorch\lib\typing.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:DLNR/train_stereo.py", line 9, in <module>
from torch.utils.tensorboard import SummaryWriter
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\torch\utils\tensorboard\__init__.py", line 2, in <module>
from setuptools import distutils
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\__init__.py", line 18, in <module>
from setuptools.dist import Distribution
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\dist.py", line 34, in <module>
from ._importlib import metadata
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_importlib.py", line 38, in <module>
from setuptools.extern import importlib_metadata as metadata
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
File "<frozen importlib._bootstrap>", line 583, in module_from_spec
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\extern\__init__.py", line 52, in create_module
return self.load_module(spec.name)
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\extern\__init__.py", line 37, in load_module
__import__(extant)
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_vendor\importlib_metadata\__init__.py", line 17, in <module>
from . import _adapters, _meta
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_vendor\importlib_metadata\_meta.py", line 1, in <module>
from ._compat import Protocol
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_vendor\importlib_metadata\_compat.py", line 11, in <module>
from ..typing_extensions import Protocol # type: ignore
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_vendor\typing_extensions.py", line 416, in <module>
extra=collections.OrderedDict):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Process finished with exit code 1
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_vendor\typing_extensions.py", line 416, in <module>
extra=collections.OrderedDict):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
看这行报错以为是typing-extensions的问题,试了几个版本没什么用。而且按照TypeError百度了之后说是类继承冲突,这我也不懂啊!
File "C:\Users\26735\anaconda3\envs\pytorch\lib\site-packages\setuptools\_importlib.py", line 38, in <module>
from setuptools.extern import importlib_metadata as metadata
看报错里面有上面那行,想起之前工程运行时setuptools版本过高报过错,所以把setuptools版本从65降成58,就可以运行了。