【发布时间】:2020-11-15 15:00:57
【问题描述】:
我的包中有一个 *.pyx (Cython) 源文件,但在我运行时它没有包含在源代码分发中:
$ python3 setup.py sdist
因此,我添加了一个 MANIFEST.in 文件以包含所有 *.pyx 文件。我的包要求将 Cython 指定为要求:因此我的所有用户都将安装 Cython。在其他包中,我使用 pyximport:
import pyximport; pyximport.install(language_level=3)
from mycythonpackage.mycythonmodule import *
现在,当我运行 sdist 时,我正确地看到了打包在 tarball 中的 *.pyx 文件。但是,当我将 tarball 解压到一个文件夹中,然后执行:
$ sudo pip3 install .
安装进行得很顺利。但是没有安装 pyx 文件,因此我的包在运行时无法找到 Cython 模块。
只需在我的包中包含/安装 pyx 文件就可以解决我的问题,因为我希望我的用户按原样运行我的包,并且 Cython 会即时编译它们。我不想编译/构建 pyx 文件,也不想/不需要打包 .so / .c / ... 文件。我只想安装普通的 *.pyx 文件。如何指示 pip 在安装过程中强制包含/安装 *.pyx 文件?
【问题讨论】:
标签: python pip cython distutils