我在 Windows 11 上使用 Python 3.9.7 [MSC v.1916 64 位 (AMD64)]。 我尝试了火炬 1.10.2 和火炬 1.11.0。在这两种情况下,version.parse 函数都返回 None。
version.parse(importlib_metadata.version("torch"))
。
所以,我收到以下错误:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\IPython\core\interactiveshell.py", line 3457, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-1-c243c65504c9>", line 1, in <module>
version.parse(importlib_metadata.version("torch"))
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\packaging\version.py", line 49, in parse
return Version(version)
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\packaging\version.py", line 264, in __init__
match = self._regex.search(version)
TypeError: expected string or bytes-like object
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\bertopic\__init__.py", line 1, in <module>
from bertopic._bertopic import BERTopic
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\bertopic\_bertopic.py", line 31, in <module>
from bertopic.backend._utils import select_backend
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\bertopic\backend\__init__.py", line 2, in <module>
from ._word_doc import WordDocEmbedder
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\bertopic\backend\_word_doc.py", line 4, in <module>
from bertopic.backend._utils import select_backend
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\bertopic\backend\_utils.py", line 2, in <module>
from ._sentencetransformers import SentenceTransformerBackend
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\bertopic\backend\_sentencetransformers.py", line 3, in <module>
from sentence_transformers import SentenceTransformer
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\sentence_transformers\__init__.py", line 3, in <module>
from .datasets import SentencesDataset, ParallelSentencesDataset
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\sentence_transformers\datasets\__init__.py", line 3, in <module>
from .ParallelSentencesDataset import ParallelSentencesDataset
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\sentence_transformers\datasets\ParallelSentencesDataset.py", line 4, in <module>
from .. import SentenceTransformer
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\sentence_transformers\SentenceTransformer.py", line 11, in <module>
import transformers
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\transformers\__init__.py", line 30, in <module>
from . import dependency_versions_check
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\transformers\dependency_versions_check.py", line 17, in <module>
from .utils.versions import require_version, require_version_core
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\transformers\utils\__init__.py", line 33, in <module>
from .generic import (
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\transformers\utils\generic.py", line 28, in <module>
from .import_utils import is_flax_available, is_tf_available, is_torch_available, is_torch_fx_proxy
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\transformers\utils\import_utils.py", line 350, in <module>
torch_version = version.parse(importlib_metadata.version("torch"))
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\packaging\version.py", line 49, in parse
return Version(version)
File "C:\ProgramData\Anaconda3\envs\SentiAnalysis\lib\site-packages\packaging\version.py", line 264, in __init__
match = self._regex.search(version)
TypeError: expected string or bytes-like object
我在我的环境 site_packages 文件夹中发现了一些 torch-XYZ0-info 文件夹,导致了相同的行为。清理一下就解决了问题。