NAS环境安装Binance库时backports.zoneinfo编译失败求助
问题:Synology NAS安装Binance库时backports.zoneinfo编译失败
环境信息
- Python版本:3.8.15
- pip版本:24.0
- 硬件架构:aarch64(ARMv8)
- 系统:Synology DSM
错误详情
安装Binance库时,依赖的backports.zoneinfo编译失败,核心错误为:
error: command '/usr/local/aarch64-unknown-linux-gnu/bin/ccache/aarch64-unknown-linux-gnu-wrap-gcc' failed: No such file or directory
完整错误输出:
Building wheel for backports.zoneinfo (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for backports.zoneinfo (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [35 lines of output] running bdist_wheel running build running build_py creating build creating build/lib.linux-aarch64-cpython-38 creating build/lib.linux-aarch64-cpython-38/backports copying src/backports/__init__.py -> build/lib.linux-aarch64-cpython-38/backports creating build/lib.linux-aarch64-cpython-38/backports/zoneinfo copying src/backports/zoneinfo/_zoneinfo.py -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo copying src/backports/zoneinfo/_version.py -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo copying src/backports/zoneinfo/_tzpath.py -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo copying src/backports/zoneinfo/_common.py -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo copying src/backports/zoneinfo/__init__.py -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo running egg_info writing src/backports.zoneinfo.egg-info/PKG-INFO writing dependency_links to src/backports.zoneinfo.egg-info/dependency_links.txt writing requirements to src/backports.zoneinfo.egg-info/requires.txt writing top-level names to src/backports.zoneinfo.egg-info/top_level.txt reading manifest file 'src/backports.zoneinfo.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.png' under directory 'docs' warning: no files found matching '*.svg' under directory 'docs' no previously-included directories found matching 'docs/_build' no previously-included directories found matching 'docs/_output' adding license file 'LICENSE' adding license file 'licenses/LICENSE_APACHE' writing manifest file 'src/backports.zoneinfo.egg-info/SOURCES.txt' copying src/backports/zoneinfo/__init__.pyi -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo copying src/backports/zoneinfo/py.typed -> build/lib.linux-aarch64-cpython-38/backports/zoneinfo running build_ext building 'backports.zoneinfo._czoneinfo' extension creating build/temp.linux-aarch64-cpython-38 creating build/temp.linux-aarch64-cpython-38/lib /usr/local/aarch64-unknown-linux-gnu/bin/ccache/aarch64-unknown-linux-gnu-wrap-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DSYNOPLAT_F_ARMV8 -O2 -include /usr/syno/include/platformconfig.h -DSYNO_ENVIRONMENT -DBUILD_ARCH=64 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DSYNO_RUNNING_DSM_BUILD_SYSTEM -g -pipe -fstack-protector-strong -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=3 -O2 -Wno-unused-result -fexceptions -Wbidi-chars=ucn -fstack-clash-protection -fPIC -I/volume1/Python/Bot_Binance/env/env_bot_binance/include -I/usr/include/python3.8 -c lib/zoneinfo_module.c -o build/temp.linux-aarch64-cpython-38/lib/zoneinfo_module.o -std=c99 error: command '/usr/local/aarch64-unknown-linux-gnu/bin/ccache/aarch64-unknown-linux-gnu-wrap-gcc' failed: No such file or directory [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for backports.zoneinfo Failed to build backports.zoneinfo ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects
已尝试操作
- 单独执行
pip install backports.zoneinfo,错误依旧 - 升级pip至24.0版本
解决方案
1. 安装预编译wheel包
直接使用预编译的aarch64版本,跳过编译步骤:
pip install backports.zoneinfo --only-binary :all:
也可以指定兼容版本:
pip install backports.zoneinfo==0.2.1 --only-binary :all:
2. 补全编译依赖
如果必须编译,需要在NAS上安装开发工具链:
- 通过DSM套件中心安装
GCC和make(若套件中心无对应包,可先安装Entware,再执行opkg install gcc make) - 若gcc路径不存在,创建软链接指向系统已有的gcc:
ln -s /usr/bin/gcc /usr/local/aarch64-unknown-linux-gnu/bin/ccache/aarch64-unknown-linux-gnu-wrap-gcc
3. 升级Python版本
Python 3.9+已内置zoneinfo标准库,无需依赖backports.zoneinfo:
- 通过DSM套件中心安装更高版本的Python,或使用pyenv编译安装
4. 强制预编译安装Binance库
安装Binance库时直接使用--only-binary参数,强制所有依赖用预编译包:
pip install python-binance --only-binary :all:
内容的提问来源于stack exchange,提问作者AlexH
相关产品推荐
相关产品推荐

