即使安装了软件包,也找不到 python 模块句子转换器

问题描述 投票:0回答:1

对于我的 python 脚本(如下所示),我使用句子转换器包,其中包含 SBERT 模型。即使在执行“pip list”时明确列出该软件包,并且还安装了 torch,所有内容都更新到最新版本,但仍然找不到该模块。

剧本:

import numpy as np
import pandas as pd
from sentence_transformers import SentenceTransformer

# Load the SBERT model
model = SentenceTransformer('all-mpnet-base-v2')

# Load the dataset
input_file = 'PJ_whole_conversations_row_per_conversation_v1.csv'
df = pd.read_csv(input_file)

# Generate embeddings for the "message" column
messages = df['message'].tolist()
embeddings = model.encode(messages, convert_to_numpy=True)

# Save embeddings to NumPy file
output_file_numpy = 'row_per_conversation_embeddings.npy'
np.save(output_file_numpy, embeddings)

print(f'Embeddings have been generated and saved to {output_file_numpy}')

我尝试使用不同的环境。我尝试使用最新版本的 python 和软件包全局执行脚本。我正在使用 Visual Studio Code 在 Windows 11 作为操作系统上进行编码,通过它我还尝试了 conda 和 venv 作为环境。我更改了 python 和包版本来尝试不同的组合,认为版本可能不兼容。每次我遇到的错误都略有不同,但总是句子转换器无法访问或无法正确访问的变体。

最常见的是,根据我使用的 python 和包的版本,我会遇到以下各种错误:

发生异常:OSError [WinError 126] 找不到指定的模块。加载“C:\Users”时出错 ea\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages orch\lib bgemm.dll”或其依赖项之一。 文件“C:\Users\saham\OneDrive.Semester\Independent Research Project\Python_scripts ow_per_conversation_word embedding.py”,第 3 行,在 从句子转换器导入句子转换器 OSError: [WinError 126] 找不到指定的模块。加载“C:\Users”时出错 ea\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages orch\lib bgemm.dll”或其依赖项之一。

由于火炬往往是问题所在,我尝试在各种环境中卸载并重新安装火炬,但它从未修复错误。老实说,我有点束手无策,希望有人能知道一个好的解决办法。就像我说的,即使它全部安装在全新的环境中并且跨越不同的版本变体,它仍然会发生。

python visual-studio-code torch bert-language-model sentence-transformers
1个回答
0
投票

您使用哪个Python版本? 我正在为朋友调试同样的问题,到目前为止我的研究发现sentence_transformers依赖项之一(sentencepiece)可能与Python 3.12不兼容。 请参阅其他 SO 帖子。 其他情况表明 Pytorch 安装错误(或未安装),建议手动安装(注意链接中的 Pytorch 版本,这些版本相当旧)。参考文献:GitHub 1GitHub 2

请让我知道什么可能对您有用,我会更新答案,以防我的朋友设法解决问题(希望如此)。

© www.soinside.com 2019 - 2024. All rights reserved.