You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Python3 venv中fastpbkdf2缺失.so文件引发ModuleNotFound错误

问题:虚拟环境安装fastpbkdf2后缺失编译文件,导致ModuleNotFoundError

问题描述

我在项目中依赖fastpbkdf2库,用python3 -m venv创建虚拟环境后执行pip install fastpbkdf2安装依赖,全程无报错,但运行pytest测试时触发ModuleNotFoundError: No module named 'fastpbkdf2._fastpbkdf2'。

排查后发现,虚拟环境路径.venv/lib/python3.12/site-packages/fastpbkdf2下缺失_fastpbkdf2.abi3.so文件。但全局安装该库,或是在Docker容器内执行相同安装步骤时,这个文件会自动存在。本地手动编译依赖能解决问题,但这不属于正常的安装流程,我不清楚该去哪里提交这个issue,特此提问。

复现步骤

前置条件

  • Python 3.12(Python 3.10也可复现此问题)
  • MacOS 14.5
  • Pip 24.0

操作流程

  1. 克隆目标项目仓库:
git clone git@github.com:carter-yagemann/python-fuzzy-extractor.git
cd python-fuzzy-extractor
  1. 创建并激活虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
  1. 安装项目依赖:
pip install -r requirements.txt
pip install -r requirements.testing.txt
  1. 运行测试命令:
python3 -m pytest

错误输出

ImportError while importing test module '/path/to/project/tests/fuzzy_extractor_test.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/local/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py:90: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/fuzzy_extractor_test.py:26: in <module>
    from fuzzy_extractor import FuzzyExtractor
fuzzy_extractor/__init__.py:35: in <module>
    from fastpbkdf2 import pbkdf2_hmac
.venv/lib/python3.12/site-packages/fastpbkdf2/__init__.py:7: in <module>
    from fastpbkdf2._fastpbkdf2 import ffi, lib
E   ModuleNotFoundError: No module named 'fastpbkdf2._fastpbkdf2'

执行ls .venv/lib/python3.12/site-packages/fastpbkdf2可确认.so文件缺失;但在Docker环境下执行相同步骤,_fastpbkdf2.abi3.so文件正常存在。

临时解决办法

激活虚拟环境后,手动克隆fastpbkdf2仓库并编译安装:

git clone https://github.com/Ayrx/python-fastpbkdf2.git
cd python-fastpbkdf2
python3 setup.py build_ext --inplace
python3 setup.py install

Issue提交建议

这个问题属于fastpbkdf2包的发布问题(PyPI上的预编译包可能未包含适配MacOS 14.5的二进制文件),应该直接到fastpbkdf2的官方GitHub仓库提交issue。提交时需要明确说明你的环境信息(MacOS版本、Python版本、Pip版本)、完整的复现步骤,以及虚拟环境与全局/Docker环境的现象对比。

内容的提问来源于stack exchange,提问作者violog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:25:57