python编译 pyd 工具_使用Python设置工具将cython编译的pyd文件放在原始文件夹中?...

我正在努力建立设置.py我的python3.4应用程序包,其中包含一个Cython模块。我的计划是设置.py这个文件需要Cython并编译.pyx文件,我通常只在Win32(x86&x64)和Mac上运行它,然后生成平台轮子并将它们上载到PyPI,这样普通用户就不需要Cython或编译任何东西。在

目前我可以得到设置.py脚本来生成.pyd文件,但它没有将生成的.pyd文件放在与原始.pyx文件相同的位置,而我需要它。在

我尝试手动复制.pyd文件,但是当我通过bdist_wheel生成wheel时,我得到了一个纯Python wheel,我认为这是错误的,因为我构建的.pyx文件的版本取决于平台。我还尝试了子类化Distribution类,并强制is_pure()返回False(如{a1}所述),但这行不通。(仍然生成纯Python轮子。)

我想如果我能设置.py脚本把编译好的文件放在正确的位置,那么轮子就不会是纯Python了,一切都会好起来的。在

所以我的问题是:有什么背景吗设置.py告诉它把编译好的Cython文件放在与源文件相同的位置?在

或者,有没有一种方法可以将编译后的文件复制到我需要它们的位置,但是轮子仍然是非纯的?在

还是我走错了路。我是否应该更改Python代码以从其他地方获取编译后的包?(这在我看来不太合适。)

[编辑]还是应该将编译后的二进制文件.pyd/.so/.dylib放入包中,添加逻辑以在运行时基于体系结构获得正确的.pyd,然后使用纯Python轮子?(这对我来说也不太合适。)

有关我的设置的详细信息:

我在我的设置.py脚本。我的一个片段设置.py在这里(去掉了很多东西,以便与相关的东西保持联系):from setuptools import setup, Extension

from Cython.Build import cythonize

from Cython.Distutils import build_ext

...

extensions = [

Extension(name='audio_interface',

sources=['mpf/mc/core/audio/audio_interface.pyx'],

include_dirs=include_dirs,

library_dirs=library_dirs,

libraries=libraries,

extra_objects=extra_objects,

extra_compile_args=extra_compile_args,

extra_link_args=extra_link_args),

...

setup(

...

ext_modules=cythonize(extensions),

cmdclass= {'build_ext': build_ext},

...

谢谢!

布莱恩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值