当前位置: 首页 > 面试题库 >

构建它时如何强制python wheel特定于平台?

缑赤岩
2023-03-14
问题内容

我正在使用其中setup.py包含一些自定义安装命令的python2软件包。这些命令实际上构建了一些Rust代码,并输出了一些.dylib移入python包的文件。

重要的一点是,Rust代码在python包之外。

setuptools应该自动检测python软件包是纯python还是平台特定的(例如,如果它包含某些C扩展名)。就我而言,当我跑步时pythonsetup.py bdist_wheel,生成的车轮被标记为纯python车轮:<package_name>-<version>-py2-none-any.whl。这是有问题的,因为我需要在不同的平台上运行此代码,因此需要在每个平台上生成一个轮子。

有没有办法在构建轮子时强制构建特定于平台?


问题答案:

这是我通常从uwsgi查看的代码

基本方法是:

setup.py

# ...

try:
    from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
    class bdist_wheel(_bdist_wheel):
        def finalize_options(self):
            _bdist_wheel.finalize_options(self)
            self.root_is_pure = False
except ImportError:
    bdist_wheel = None

setup(
    # ...
    cmdclass={'bdist_wheel': bdist_wheel},
)

root_is_pure钻头告诉车轮机械制造一个非纯正pyX-none- any车轮。您还可以得到票友说有 二进制
平台相关的组件,但没有 CPython的ABI 特定组件。



 类似资料:
  • 问题内容: 我正在使用Gson对此类进行序列化和反序列化。今天,我不得不在此对象中添加最终的UUID。我没有序列化的问题。我需要强制gson 在反序列化时使用构造函数。我该如何实现? 问题答案: 您可以实现一个自定义的JsonDeserializer并将其注册到GSON。 请记住,此代码尚未经过测试。

  • 我有一个特定的Postgre架构,它收集所有定义类型的表,如,其中的值可以是,等。 我们需要获取所有这些表,并根据它们生成枚举,以便以后在我们的应用程序中使用。因此,这些枚举应该如下所示: 我们决定使用JOOQ看起来很有趣,但是我们找不到留档/示例来创建一个使用默认java生成器行为加上自定义枚举生成扩展的自定义生成器。 基于这篇文章用JOOQ从表中生成枚举类,它带来了一些想法,但仍然不清楚如何实

  • 我正在建立一个本体论。 我有一个叫的类 我有一个名为的对象属性 我添加了一个相当于的

  • 问题内容: 具体来说,我运行插件来生成文件。这仅在Windows上有效,因此我想知道是否可以在其他平台上“退出”此步骤? 插件被绑定到执行阶段,就像这样 问题答案: 您可以将该插件包装在单独的构建配置文件下,然后在所需的构建上启用该配置文件 例如: 现在在启动Maven时传递参数以指定配置文件 例如:

  • 问题内容: 如何在Python中将类成员变量限制为特定类型? 较长版本: 我有一个具有多个成员变量的类,这些成员变量在该类的外部设置。由于它们的使用方式,它们必须为特定类型,即int或list。 如果这是C ++,则只需将它们设为私有,然后在“ set”函数中进行类型检查。鉴于这是不可能的,是否有任何方法可以限制变量的类型,以便在为其分配了错误类型的值时在运行时发生错误/异常?还是我需要在使用它们

  • 问题内容: 在一个JS应用程序中,我从服务器(Ajax)收到时间戳(等价)。 基于该时间戳,我使用以下对象创建对象: 现在,解码当前用户区域设置时区中的时间戳。我不要 我想_ 将这个时间戳转换为欧洲赫尔辛基市的当前时间(不考虑用户的当前时区)。 我怎样才能做到这一点? 问题答案: Date对象的基础值实际上是UTC。为了证明这一点,请注意,如果您键入内容,则会看到类似:的信息。GMT中将0视为0,