首页 > 编程问答 >即使安装了软件包,也找不到 python 模块句子转换器

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

时间:2024-07-30 04:02:07浏览次数:14  
标签:python visual-studio-code torch bert-language-model sentence-transformers

对于我的 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\nea\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\torch\lib\fbgemm.dll”或其依赖项之一时出错。 文件“C:\Users\saham\OneDrive\4.Semester\Independent Research Project\Python_scripts\row_per_conversation_word embedding.py”,第 3 行,位于 从句子转换器导入句子转换器 OSError: [WinError 126] 找不到指定的模块。加载“C:\Users\nea\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\torch\lib\fbgemm.dll”或其依赖项之一时出错。| ||由于 torch 往往是问题所在,我尝试在各种环境中卸载并重新安装 torch,但它从未修复错误。老实说,我有点束手无策,希望有人能知道一个好的解决办法。就像我说的,即使它全部安装在全新的环境中并且跨越不同的版本变体,它仍然会发生。

Since torch tended to be the issue, I tried de- and reinstalling torch in the various environments, but it never fixed the error. I'm honestly a bit at the end of my rope here and hope that someone might know a good fix. Like I said, it keeps happening even when it's all installed in a brand new environment and across different version variations.


错误消息“发生异常:OSError [WinError 126] 找不到指定的模块”即使在安装了必要的软件包(包括 sentence_transformers torch )后,通常表明存在与 PyTorch 安装或其依赖项的兼容性相关的问题。具体来说,问题似乎在于加载 torch 库中使用的 fbgemm.dll 文件。以下是解决此问题的系统步骤:

  1. 验证 PyTorch 安装:
  2. 确保已为你的 Windows 版本和 Python 版本安装了正确的 PyTorch 版本。可以通过访问 PyTorch 网站 并使用其安装选择器来完成。
  3. 尝试从你的环境中卸载并重新安装 PyTorch: bash pip uninstall torch pip install torch

  4. 检查 Microsoft Visual C++ Redistributable:

  5. PyTorch 需要 Microsoft Visual C++ Redistributable for Visual Studio 才能正常运行。你可以在 此链接 找到最新版本。
  6. 下载并安装与你的系统架构(32 位或 64 位)匹配的可再发行组件。

  7. 检查环境变量:

  8. 确保你的系统 PATH 环境变量设置正确,并且包含 PyTorch 安装的路径。这使得你的系统可以找到必要的 dll 文件。

  9. 在虚拟环境中测试:

  10. 如你所述,你尝试了不同的环境。但是,如果上述步骤均未解决问题,请尝试在一个新的虚拟环境中创建一个干净的 Python 环境并专门安装 sentence_transformers torch 。这可以帮助排除任何与软件包冲突或现有环境配置相关的问题。

  11. 与你的特定 CPU 架构的兼容性:

  12. 确保你使用的 PyTorch 版本与你的 CPU 架构兼容。例如,某些旧的 CPU 可能不支持较新的 PyTorch 版本。考虑检查你的 CPU 规格并相应地选择兼容的 PyTorch 版本。

  13. 使用 CUDA GPU 支持的 PyTorch(如果适用):

  14. 如果你有支持 CUDA 的 NVIDIA GPU,并且想将其用于 PyTorch,请确保安装了正确的 CUDA 版本的 PyTorch。你可以参考 PyTorch 网站上的官方说明来了解如何安装。

如果在尝试了这些步骤后仍然遇到问题,请提供以下信息,以便我进一步帮助你:

  • 你的 Python 版本(例如,Python 3.8)
  • 你的 sentence_transformers torch 版本(可以使用 pip list 找到)
  • 你的 Windows 版本(包括架构,例如 Windows 11 64 位)
  • 你的 CPU 型号
  • 你是否在使用任何虚拟环境,如果是,使用的是哪一个(例如,conda、venv)
  • 完整的错误消息和回溯

标签:python,visual-studio-code,torch,bert-language-model,sentence-transformers
From: 78808745

相关文章

  • 有没有办法在 python 中返回类实例的布尔属性?
    我想组织我玩的游戏中的汽车数据。为此,我创建了一个“Car”类。我希望将此类实例的一些属性作为布尔值,这样我就可以将此类的所有实例放入列表中并过滤它们。我当前的解决方案不起作用,因为,我收到以下错误消息:TypeError:__repr__returnednon-string(typeCar)我使用......
  • python 正则表达式匹配一行中的多个单词而不转到下一行
    我正在编写一个解析器来解析以下输出:admin@str-s6000-on-5:~$showinterfacestatusEthernet4InterfaceLanesSpeedMTUAliasVlanOperAdminTypeAsymPFC------------------------------------------......
  • 使用 Python 平滑和对称不规则形状和曲线
    我需要完成三项任务:正则化曲线曲线的对称性完成不完整的曲线例如,这里是输入和预期的输出图像:输入输出|||在一般设置中,形状可以由任何SVG曲线基元(贝塞尔曲线、直线、弧线)表示。为了统一表示,示例包含曲线的折线近似。这些折线保存为......
  • 在Python中通过绝对路径引用数据文件夹
    我有一个大型python项目,其中数据太大,无法每次都以相同的方式共享。不同的人可能会使用网络位置或将某些内容复制到本地驱动器。该路径由不同子文件夹中的脚本和笔记本使用。例如,我将创建一个config.py来定义数据文件夹的路径。importsyssys.path.append('../'......
  • python三天速成记(看完你就会)day3 满满干货~
    续上文啦~EXCEL表的操作上一篇文章讲了怎么读取和操作txt和csv文档,但其实我们生活中还有一个常用的文本格式那就是excel文件,特别是在对大量数据进行处理的时候。excel文件的用处和广泛。其实在python中有很多库可以处理excel文件,但是本文主要介绍使用最实用最广泛的库pan......
  • Python输入验证改进的其他方式
    题目[题目来源:Python编程快速上手——让繁琐工作自动化(第二版)第三章实践项目,下面的解答程序为我自己完成的,仅供参考。]编写一个名为collatz()的函数,他有一个名为number的参数。如果参数是偶数,那么collatz()就输出number//2,并返回该值。如果参数是奇数,那么collatz()就......
  • Python的PyInputPlus模块
    PyInputPlus模块简介PyInputPlus模块的功能:PyInputPlus模块是一个Python第三方模块,需要自己对它进行安装。包含与input()函数类似的、用于多种数据(如日期、数字、电子邮箱地址等)的函数。如果,用户输入了无效的内容,例如格式错误的日期或超过预期范围的数字,那么PyInputPlus模......
  • 用Python实现二进制搜索(二分查找)
    二进制搜索(binarysearch,又称二分搜索)是一种快速有效的搜索方法,用于搜索有序列表中的元素。importmathdefbinary_search(sorted_list,target):"""在有序列表sorted_list中查找目标值target的位置使用二分查找算法"""lower_bound=0#初始......
  • 超详细Python教程——使用Hexo搭建自己的博客
    使用Hexo搭建自己的博客对于一个程序员来说,搭建一个属于自己的博客平台是非常有意义的事情。首先,博客可以记录自己的成长历程,也是对自己一段时间学习和工作的总结和沉淀;其他,通过博客可以营销自己,增强自己在互联网或行业内的影响力,为将来更好的职业生涯打一个坚实的基础。前......
  • 超详细Python教程——玩转PyCharm
    玩转PyCharmPyCharm是由JetBrains公司开发的提供给Python专业的开发者的一个集成开发环境,它最大的优点是能够大大提升Python开发者的工作效率,为开发者集成了很多用起来非常顺手的功能,包括代码调试、高亮语法、代码跳转、智能提示、自动补全、单元测试、版本控制等等。此外,P......