【发布时间】:2019-12-20 22:18:09
【问题描述】:
我尝试实现答案https://stackoverflow.com/a/57480599/7482208,但我坚持从另一个包导入一个包。
代码在这里:https://github.com/iamishalkin/setuptools_cython_question
我想要的是从包装文件夹中获得一个独立的包wrap,这样您就可以在没有cust 包的情况下使用它。
我还希望能够通过从wrap 继承FuncWrapper 类来创建自定义函数。
我做什么:
- 首先我在
wrapper文件夹中运行python setup.py bdist_wheel(我想这是我做错了,因为它只给了我二进制文件) - 下一个
pip instal dist/(some_name).whl - 接下来我将
import wrap和include_dirs=wrap.get_include()添加到custom/setup.py,就像在numpy中完成的一样 - 我在
custom文件夹中运行python setup.py bdist_wheel但失败了,第一步没有创建除二进制文件之外的文件
所以问题是:如何将.pxd 文件添加到最终包中。
我还尝试了sdist,它不会编译 cython 代码而只是复制它。
【问题讨论】:
-
你检查过my answer那里吗?
-
我认为答案从 "If you want to expose the C-level interface of your library for other libraries to cimport from, use package_data to install the .pxd files" 开始,但是我从来没有真正理解 setup.py,它似乎只是忽略了包数据
-
@ArdaAytekin 这是解决特定问题的好方法(如果允许您更改 C 接口);
BinaryOp版本仍然需要一些安装 .pxd 文件的方法才能用作库(否则用户不能轻易地从BinaryOp继承cdef class所以它并不能真正避免 this i> 问题 -
@ArdaAytekin 是的,我看到了,但不幸的是我无法更改 c 代码
标签: python cython setuptools cimport