如何创建带有 abi 标签的完整轮子?

2024-01-16

尝试从一个空项目创建一个轮子,使用这个setup.py:

setup.py


from setuptools import setup
setup(name='bla', version='1')

我调用python setup.py bdist_wheel --python-tag py35 --plat-name linux_x86_64并得到bla-1-py35-none-linux_x86_64.whl

我的机器统计


python -V: Python 3.6.9
uname -p: x86_64
  1. 如何执行abi? (做了bla-1-py35-cp35-linux_x86_64.whl)
  2. 如何在我的 python 标签中决定 py35 和 cp35 之间?

经过我自己的大量搜索,我终于找到了一个可行的解决方案“pip setup.py bdist_wheel”不再构建强制的非纯轮子 https://stackoverflow.com/questions/35112511/pip-setup-py-bdist-wheel-no-longer-builds-forced-non-pure-wheels

基本上,如果 setup.py 认为您有一个二进制发行版,它将使用特定版本的 python、ABI 和当前架构创建一个轮子。您可以通过覆盖 Distribution 类中的“has_ext_modules”函数来做到这一点。正如建议的https://stackoverflow.com/users/5316090/py-j https://stackoverflow.com/users/5316090/py-j:

from setuptools import setup
from setuptools.dist import Distribution

DISTNAME = "packagename"
DESCRIPTION = ""
MAINTAINER = ""
MAINTAINER_EMAIL = ""
URL = ""
LICENSE = ""
DOWNLOAD_URL = ""
VERSION = '1.2'
PYTHON_VERSION = (2, 7)


# Tested with wheel v0.29.0
class BinaryDistribution(Distribution):
    """Distribution which always forces a binary package with platform name"""
    def has_ext_modules(foo):
        return True


setup(name=DISTNAME,
      description=DESCRIPTION,
      maintainer=MAINTAINER,
      maintainer_email=MAINTAINER_EMAIL,
      url=URL,
      license=LICENSE,
      download_url=DOWNLOAD_URL,
      version=VERSION,
      packages=["packagename"],

      # Include pre-compiled extension
      package_data={"packagename": ["_precompiled_extension.pyd"]},
      distclass=BinaryDistribution)

然后,您可以从所需的任何 Python 版本/架构运行 setup.py 文件,它将为每个版本/架构创建一个特定于平台的轮子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建带有 abi 标签的完整轮子? 的相关文章

  • Python 有不可变列表吗?

    python 有不可变列表吗 假设我希望具有元素有序集合的功能 但又想保证它不会改变 如何实现呢 列表是有序的 但它们可以改变 是的 它被称为一个tuple 所以 而不是 1 2 这是一个list并且可以突变 1 2 is a tuple并
  • 在 Python 中比较浮点数是否几乎相等的最佳方法是什么?

    众所周知 由于舍入和精度问题 比较浮点数是否相等有点繁琐 例如 比较浮点数 2012 年版 https randomascii wordpress com 2012 02 25 comparing floating point number
  • 配置 PIP 以在代理后面工作

    我已经安装了 python 3 4 3 附带pip 我想从代理后面使用 pip 所以我执行了以下操作 Created C Users foo pip pip ini并添加了代理配置部分 proxy export http proxy my
  • Python 正则表达式从文本中提取域

    我有以下正则表达式 r a zA Z0 9 a zA Z0 9 61 a zA Z0 9 a zA Z 2 6 当我将其应用于文本字符串时 比方说 这是 www website1 com 这是 website2 com 我得到 www we
  • 如何将数据从 JavaScript 发送到 Python

    我正在 jinja2 和 python2 7 上使用 GAE 进行 Web 开发 我可以从Python获取数据 但我无法将数据从 JavaScript 发送到 Python 这是 JavaScript 代码 function toSave
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 如何使用格式保存 Tkinter 文本小部件的内容

    我在 python 中使用 Tkinter 在文本窗口中显示输出 我发现使用 get 功能我可以从此窗口检索文本内容 但我有用不同背景颜色标记的文本部分 是否可以将内容与这些颜色一起复制到文件 例如 html 或 doc 中 没有对你想要的
  • 在 Python 中倾斜数组

    我有一个 2D 数组 我将使用它保存为灰度图像scipy misc toimage 在此之前 我想将图像倾斜给定角度 像这样进行插值scipy ndimage interpolation rotate 上图只是为了说明倾斜过程 我知道我必须
  • 我可以在pycharm中的断点处进入交互模式吗

    我是一个相当新的 Pycharm 3 用户 正在从事 django 项目 我可以在 pycharm3 中的断点处进入交互模式吗 这可能吗 当程序在断点处停止时 我尝试过工具 gt 打开调试命令行 但我没有看到控制台打开 我怎样才能让它发挥作
  • pandas groupby 并转换为 json 列表

    我有一个如下所示的 pandas 数据框 idx f1 f2 f3 1 a a b 2 b a c 3 a b c 87 e e e 我需要将其他列转换为基于索引列的字典列表 所以 最终结果应该是 idx features 1 f1 a f
  • Python3 - 如何将字符串转换为十六进制

    我正在尝试将字符串逐个字符转换为十六进制 但我无法在Python3中弄清楚它 在较旧的 python 版本中 我的以下内容有效 test This is a test for c in range 0 len test print 0x s
  • 错误:tensorflow:无法匹配检查点的文件

    我正在训练一个张量流模型 在每个时期之后我都会保存模型状态并腌制一些数组 到目前为止 我的模型执行了 2 个纪元 并且保存状态的文件夹包含以下文件 checkpoint model e knihy preprocessed txt e0 c
  • 如何检查discord.py中的所有者

    我试图让这个命令只有所有者才能运行它 是否有办法检查服务器的最高角色或创建者 我尝试了 commands is owner 但这仅检查某人是否是机器人的所有者 Guild owner https discordpy readthedocs
  • NumPy 根据另一个数组中的值对第三个数组中的每个匹配元素求和一个数组

    我有两个 numpy 数组 一个包含值 另一个包含每个值类别 values np array 1 2 3 4 5 6 7 8 9 10 valcats np array 101 301 201 201 102 302 302 202 102
  • 如何在solidpython中设置特殊变量$fa、$fs、$fn

    in 上一个线程 https stackoverflow com questions 54040390 how to save data in stl file after python solid processing显示了如何通过 So
  • 如果任何单元测试失败,如何使 Python 的覆盖率工具失败?

    我想使用 shell 脚本来确保我的单元测试通过and我的代码有足够的测试覆盖率 我只想运行我的测试代码once 我希望我可以通过coverage https coverage readthedocs io 工具和单次运行的工具 如果一项或
  • 如何在 Python 中连接两个列表?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在 Python 中连接两个列表 Example listone 1 2 3 lis
  • 如何从 PyObject 获取指向字符串的 char*

    我怎样才能得到一个char from a PyObject它指向一个字符串 例如 这是 python 脚本 Test Connect 272 22 20 65 1234 这是 C 代码 static PyObject Connect PyO
  • 类unix系统中的python和python3命令有什么区别?

    我通读了每个命令的描述 但每个命令的描述都是完全相同的 所以我不明白这两个命令在类 Unix 系统中的工作方式有何不同 谁能解释其中的区别吗 Python3命令的引入是因为python命令指向了python2 从那时起 Python3 已成
  • 我可以以某种方式“编译”一个Python脚本以在没有安装Python的PC上运行吗?

    所以我有一个Python脚本 myscript py 我是这样执行的 python D myscript py 但是 我必须安装 Python 并将其包含在PATH使其工作的环境变量 是否有可能以某种方式将 Python 可执行文件与 Py

随机推荐

  • 使用peewee访问远程MySQL数据库

    我正在尝试使用 peewee 连接到 Amazon RDS 上的 MySQL 数据库 但无法使其工作 我是数据库新手 所以我可能在做一些愚蠢的事情 但这就是我正在尝试的 import peewee as pw myDB pw MySQLDa
  • Python质数检查[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我写了这个非常简单的素数检查 pri
  • 为什么子线程无法访问flask_login中的current_user变量?

    我正在写一个烧瓶应用我正在尝试插入一个多线程实现对于某些服务器相关的功能 我注意到这种奇怪的行为 所以我想了解为什么会发生这种情况以及如何解决它 我有以下代码 from flask login import current user log
  • 布尔数组转整数

    python 中是否有任何内置函数可以转换 bool 数组 表示字节中的位 如下所示 p True True True False True False False True 像这样的字节数组 bp byteArray 233 我知道哦 n
  • 动态添加表单字段行 - cakePHP

    我有一个发票表和一个invoice item 表 每个发票有许多发票项 创建发票时 系统会向用户显示一个包含发票表单字段的表单以及包含发票项表单字段的行 我想要做的是有一个 添加新项目 链接 可以动态 jQuery AJAX 添加新的项目字
  • 对 php.ini 的更改未反映在 PHP 的 phpinfo() 中

    我只是无法在本地主机设置或相关的设置上更改 php info 值php我的管理员 https en wikipedia org wiki PhpMyAdmin最大文件大小 所以我找到了 PHP 文件phpinfo https www php
  • 如何对 Laravel Eloquent ORM 对象进行排序?

    例如 我们有一个包含 3 个字段的模型航班 created at 航班创建的时间 name 航班名称 分数 航班的分数 所以我这样写 flights App Flight orderBy created at 我得到一些 flight排序对
  • VBA 下标超出范围 - 错误 9

    有人可以帮我解决这个代码吗 我得到了下标超出范围 error 创建工作表 之后的行在调试器中以黄色突出显示 Validation of year If TextBox Year Value Format TextBox Year Value
  • 该游戏使用哪个布局管理器?

    该游戏使用哪个布局管理器 恕我直言 使用布局和组件并不是解决您问题的好方法 就我个人而言 我倾向于使用自定义绘画解决方案 从一件作品的基本概念开始 它需要知道它的位置 它的大小 它的颜色 能够绘制自己并且可能是可重新定位的 比如 publi
  • 模板约束内的模式匹配

    这个问题是基于安德烈的回答我关于签名限制的问题 https stackoverflow com questions 11378470 signature constrait for generic types struct S int x
  • 捕获整个应用程序中的按键

    是否有可能捕获 我猜是在 app xaml cs 中的某个位置 任何键以及它是否按下了打开的窗口 感谢帮助 有一个更好的办法 成立this https social msdn microsoft com Forums vstudio en
  • 通过 JTA 使用任意资源

    是否可以使用 JTA 进行任何类型的自定义资源事务 让我们假设一个基本示例 并创建一个在发生错误时应回滚的文件夹 这样的自定义资源可以处理吗 是的 该资源需要提供以下实现XA资源 http download oracle com javae
  • struts2 忽略特定模式

    我正在使用 strust2 进行 Web 应用程序开发 我的 struts xml 文件将如下所示
  • JMagick 尝试加载文件时出错 - UnsatisfiedLink

    java lang UnsatisfiedLinkError java library path中没有JMagick 在 java lang ClassLoader loadLibrary ClassLoader java 1754 在 j
  • 自制软件安装错误:“不是有效的参考:refs/remotes/origin/master”?

    我尝试按照以下说明在 macOS Monterey 上安装 Homebrewhttps brew sh https brew sh 但它的结果是 error Not a valid ref refs remotes origin maste
  • 检查主机是否存在的快速方法

    In C 如果我 ping 一个 url 例如 http myurl com 并且该 url 不存在 我会收到 SocketException 不知道这样的主机 此请求是确定地址是否存在的一种非常快速的方法 有没有类似的方法来检查IP是否
  • 设置表单最小尺寸

    我有一个带有相当大边框的 C 表单 我想将最小尺寸设置为 850 760 默认起始尺寸 但是当我尝试在表单属性菜单中设置值时 它不断将其更改为 850 720 我尝试通过代码设置它 如下所示 this minimumSize new Sys
  • 当我用 UIView 覆盖所有屏幕时,如何用 UIView 覆盖 UIStatusBar? (iPhone)

    当我用 UIView 覆盖所有屏幕时 如何用 UIView 覆盖 UIStatusBar 我也纠结了好久要怎么做 终于弄清楚了 关键是将新窗口的 windowLevel 设置为非常高 以便它位于所有其他窗口 视图 状态栏等之上 UIWind
  • 如何使用当前预览版在 .NET Core 上构建本机二进制文件?

    使用当前的 NET Core 预览版 如何编译 发布 控制台应用程序的本机二进制文件 我使用的是 Mac 操作系统 10 11 我做了以下事情 dotnet new dotnet restore dotnet publish 我有点期望 发
  • 如何创建带有 abi 标签的完整轮子?

    尝试从一个空项目创建一个轮子 使用这个setup py setup py from setuptools import setup setup name bla version 1 我调用python setup py bdist whee