python - 在 MacBook 上为 Raspberry Pi 3 构建 Python 平台轮
问题描述
我有一个python2
包含 Rust 扩展的包。
这些扩展在我的笔记本电脑上针对 armv7 进行了交叉编译,并以.dylib
文件的形式输出,然后添加到 Python 包中。
该软件包是通过发出以下命令构建的:
python setup.py bdist_wheel --plat-name linux-armv7l
问题是这会在dist
文件夹中产生以下轮子:
<mypackage>-0.1.17-cp27-cp27m-linux_armv7l.whl
生产的轮子名称错误,不会安装在 Raspberry Pi 上。
但是,当我将轮子重命名为:
<mypackage>-0.1.17-cp27-cp27mu-linux_armv7l.whl
现在可以将轮子安装在我的 Raspberry 上。
我怎样才能python setup.py bdist_wheel
为我的内置发行版输出带有正确标签的轮子?
解决方案
cpXXm
并cpXXmu
指定目标 python 实现是否具有广泛的 unicode 支持(python 是否编译过--enable-unicode=ucs4
)。你可以检查一下
$ python -c "import sys; print('ucs2' if sys.maxunicode == 65535 else 'ucs4')"
如果它打印ucs2
,那么使用 python 安装构建的轮子将产生cp27m
轮子,否则要产生cp27mu
轮子它应该打印ucs4
。
MacOS 上的系统 python 没有广泛的 unicode 支持,因此您需要另一个安装有一个的 python。任何一个
安装 brewed
python2
:$ brew install python
或从Python.org下载并安装最新的官方
pkg
python 2.7.15 安装程序或自己从源代码编译:
$ wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz $ tar xvf Python-2.7.15.tgz $ cd Python-2.7.15 $ ./configure --enable-unicode=ucs4 $ make $ make install
注意
--enable-unicode=ucs4
or python 将在没有广泛的 unicode 支持的情况下编译。
现在构建轮子时,请务必使用正确的可执行文件(而不是系统的/usr/bin/python
)。
您可以在PEP 261中阅读有关宽 unicode 的更多信息。
推荐阅读
- visual-studio - Libjna 构建 - 链接:致命错误 LNK1104:无法打开文件 'LIBCMT.lib'
- c++ - 堆栈 std::vectors 以生成矩阵,类似于 numpy.vstack
- gradle - 具有自定义组 ID 的 Gradle 插件
- wordpress - 为什么我在 WordPress REST API 中从非 www 到 www 出现 cors 错误?
- hyperledger-fabric - 运行 Fabcar 示例返回错误:未能认可链代码安装
- javascript - 如何在纯 javascript 中打开 .csv(或任何扩展名)文件
- deep-learning - YOLO 会在全连接层之前重新缩放锚点吗?没有 ROI pooling 的解决方案是什么?
- r - 如何感谢 R 包(使用 roxygen2)的想法(不是代码)贡献者?
- objective-c - 以编程方式将工具栏按钮添加到 Finder.app (macOS)
- python - 加载 csv 文件 python jupyter