安装kotti报错: Failed to build installable wheels for some pyproject.toml based projects(bcrypt)@FreeBSD

在pip安装kotti的时候,报错:

 note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for bcrypt

ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (bcrypt)
 

看来是bcrypt库无法安装,于是使用pkg安装bcrypt:

pkg install py311-bcrypt
Updating FreeBSD repository catalogue...
pkg: No SRV record found for the repo 'FreeBSD'
Fetching meta.conf:   0%
FreeBSD repository is up to date.
All repositories are up to date.
The following 3 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	py311-bcrypt: 3.2.2_1
	py311-cffi: 1.16.0
	py311-pycparser: 2.22

Number of packages to be installed: 3

The process will require 3 MiB more space.
542 KiB to be downloaded.

Proceed with this action? [y/N]: y
[1/3] Fetching py311-cffi-1.16.0.pkg: 100%  280 KiB 287.0kB/s    00:01    
[2/3] Fetching py311-pycparser-2.22.pkg: 100%  230 KiB 235.4kB/s    00:01    
[3/3] Fetching py311-bcrypt-3.2.2_1.pkg: 100%   32 KiB  32.9kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/3] Installing py311-pycparser-2.22...
[1/3] Extracting py311-pycparser-2.22: 100%
[2/3] Installing py311-cffi-1.16.0...
[2/3] Extracting py311-cffi-1.16.0: 100%
[3/3] Installing py311-bcrypt-3.2.2_1...
[3/3] Extracting py311-bcrypt-3.2.2_1: 100%

结果不管用....因为pkg安装的库和pip安装的库并不在同一个环境下,使用pkg安装后,pip环境下还需要编译安装。

这时尝试直接从pkg位置cp到python虚拟环境下:

找到安装的位置:

/usr/local/lib/python3.11/site-packages/bcrypt/__init__.py

确认python虚拟环境的位置:

/home/skywalk/py311

执行cp操作:

cp -r /usr/local/lib/python3.11/site-packages/bcrypt /home/skywalk/py311/lib/python3.11/site-packages/

cp过去后,测试import bcrypt,报错

import bcrypt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/skywalk/py311/lib/python3.11/site-packages/bcrypt/__init__.py", line 34, in <module>
    from . import _bcrypt  # noqa: I100
    ^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '_cffi_backend'

查看它有几个关联库,看来需要这几个库都装好才行:

    py311-bcrypt: 3.2.2_1
    py311-cffi: 1.16.0
    py311-pycparser: 2.22
 

pip安装cffi库

pip install cffi

再进行python -c "import bcrypt"测试,测试通过

python -c "import bcrypt"

尽管测试时没有报错,但是安装kotti的时候还是说没有bcrypt,安装时报错。

这时候安装kotti的报错显示为:

This package requires Rust >=1.64.0.
 

看来需要安装rust,使用pkg安装rust:

pkg install rust

这时候再编译brypt完成

Successfully built bcrypt
Installing collected packages: bcrypt
Successfully installed bcrypt-4.2.0

终于通过了

Successfully installed Babel-2.15.0 Chameleon-4.5.4 Mako-1.3.5 alembic-1.13.2 anyascii-0.3.2 beaker-1.13.0 bleach-4.1.0 bleach-allowlist-1.0.3 colander-2.0 deform-2.0.14 docopt-0.6.2 fanstatic-1.4 filedepot-0.11.0 formencode-2.1.0 greenlet-3.0.3 html2text-2024.2.26 iso8601-2.1.0 js.angular-1.1.4 js.bootstrap-3.3.4 js.deform-2.0.14 js.fineuploader-5.14.0 js.html5shiv-3.7.3 js.jquery-1.9.1 js.jquery-form-3.9 js.jquery-maskedinput-1.4.1 js.jquery-maskmoney-3.0.2 js.jquery-sortable-0.9.13 js.jquery-tablednd-0.4 js.jquery-timepicker-addon-1.5.3 js.jqueryui-1.10.3 js.jqueryui-tagit-2.0.24.post2 js.modernizr-2.5.3.1 js.select2-4.0.4.post1 js.tinymce-4.5.4 kotti-2.0.9 lingua-4.15.0 packaging-24.1 peppercorn-0.6 polib-1.2.0 pyramid-1.10.8 pyramid-beaker-0.9 pyramid-chameleon-0.3 pyramid-deform-0.2 pyramid-mailer-0.15.1 pyramid-tm-2.5 pyramid-zcml-1.2.0 repoze.lru-0.7 repoze.sendmail-4.4.1 repoze.workflow-1.1 repoze.zcml-1.1 sqlalchemy-2.0.31 sqlalchemy-utils-0.41.2 transaction-4.0 typing-extensions-4.12.2 unidecode-1.3.8 waitress-3.0.0 webencodings-0.5.1 zope.component-6.0 zope.configuration-5.0.1 zope.event-5.0 zope.hookable-6.0 zope.i18nmessageid-6.1.0 zope.schema-7.0.1 zope.sqlalchemy-3.1

总结:

在FreeBSD下安装kotti等经常会碰到安装依赖库入bcrypt等失败的情况,遇到这种情况,可以使用如下方法解决:

1 使用pkg来安装bcrypt等库,注意bcypt还需要rust,也通过pkg来安装

pkg install py311-bcrypt rust

2 若python的环境下还是没有bcrypt,pip安装一下即可

pip install bcrypt

如果提示缺少cffi等库,pip安装上即可。

3 最后再pip安装kotti等库。

<think>嗯,用户遇到了在安装pysptk时出现的“ERROR: Failed building wheel for pysptk”问题。我需要根据提供的引用和之前的知识来找出可能的解决方案。首先,这类问题通常和依赖项、编译器工具链或Python环境有关。 首先,检查用户提供的引用。比如,引用[2]提到安装numpy时的问题,因为缺少对应的whl文件,用户通过指定版本和清华源解决了。这可能意味着pysptk也需要特定的版本或依赖。引用[3]中解决gdal的问题是通过手动下载whl文件安装,这可能适用于pysptk。引用[4]提到安装VS组件,说明可能需要C++构建工具。引用[5]则建议安装系统依赖如libpython3-dev,这可能适用于Linux系统。 接下来,pysptk的安装可能需要一些系统级的库,比如FFTW或SPTK。例如,在Ubuntu上可能需要安装libfftw3-dev和libsptk-dev。此外,确保Python的开发头文件已安装,比如python3-dev。对于Windows用户,可能需要安装Visual Studio的C++构建工具,并确保与Python版本兼容的编译器可用。 另外,用户可能需要升级pip和setuptools,因为旧版本可能无法正确构建wheel。使用预构建的二进制文件(如果存在)可以避免编译问题,比如通过指定--prefer-binary选项。如果这些方法都不行,手动从第三方源下载whl文件进行安装也是一个选择,但需要确保与Python版本和系统架构匹配。 最后,如果所有方法都失败,考虑使用Docker或Conda环境,因为它们可能已经配置好了所有必要的依赖,避免手动安装的麻烦。需要综合这些步骤,逐步引导用户尝试不同的解决方案,并注意不同操作系统的差异。</think>### 解决 `ERROR: Failed building wheel for pysptk` 的逐步方案 #### 1. 检查系统依赖项 **pysptk** 依赖 **FFTW** 和 **SPTK** 的 C/C++ 库。若未安装这些库,构建会失败: - **Ubuntu/Debian**: ```bash sudo apt-get install libfftw3-dev libsptk-dev ``` - **macOS**(通过 Homebrew): ```bash brew install fftw sptk ``` - **Windows**:需手动编译或使用预编译库(见步骤4)。 #### 2. 确保 Python 开发环境完整 安装 Python 头文件和构建工具: - **Ubuntu/Debian**: ```bash sudo apt-get install python3-dev build-essential ``` - **Windows**:安装 [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/),勾选“C++桌面开发”和“Windows 10 SDK”[^4]。 #### 3. 更新 pip 和 setuptools ```bash pip install --upgrade pip setuptools wheel ``` #### 4. 尝试指定预编译二进制 若官方 PyPI 无适配的 wheel,可尝试: ```bash pip install pysptk --prefer-binary -i https://pypi.tuna.tsinghua.edu.cn/simple ``` #### 5. 手动安装依赖(Windows 特殊处理) 若步骤4失败,需手动安装 **SPTK** 和 **FFTW**: 1. 下载预编译库: - SPTK:从 [SPTK 官网](http://sp-tk.sourceforge.net/) 下载 Windows 版,解压后添加 `bin` 目录到系统 PATH。 - FFTW:从 [FFTW Windows 版](http://www.fftw.org/install/windows.html) 下载,复制 `libfftw3-3.dll` 到系统目录或 Python 的 `DLLs` 文件夹。 2. 设置环境变量: ```bash setx PATH "%PATH%;C:\path\to\sptk\bin;C:\path\to\fftw\bin" ``` #### 6. 从源码编译安装 强制从源码构建并检查错误信息: ```bash pip install pysptk --no-binary :all: -v ``` 观察输出中的编译错误,可能是缺少头文件或链接库路径未正确引用。 #### 7. 使用 Conda 环境(跨平台推荐) 通过 Conda 自动解决依赖: ```bash conda install -c conda-forge pysptk ``` #### 8. 验证安装 ```python import pysptk print(pysptk.__version__) # 应输出版本号,如 0.1.21 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值