我有一个test
包含敏感代码的小辅助函数。hello.pyx
为了屏蔽此代码,我在 package中编写并使用了该函数mypackage
。
我可以通过setup.py
将包修改为如下内容来构建和使用它:
import os
from setuptools import setup, find_packages
from Cython.Build import cythonize
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
setup(
name='mypackage',
ext_modules = cythonize('mypackage/hello.pyx'),
packages=find_packages(),
include_package_data=True,
)
但是,当我通过python setup.py
or构建/安装它时pip install
,生成的 cythonhello.c
以及hello.so
被放置在安装目录中(在我的情况下~/.local/python2.7/site-packages/mypackage/
)
我可以手动hello.c
从安装目录中删除(只留下hello.so
文件)并且包运行良好。
有没有办法可以自动化这个过程,这样我就不需要手动删除编译的c
文件?
我查看了这个stackoverflow 问题。但是,当我尝试使用pip wheel .
. 另外,在我的情况下,只要安装的代码不包含纯文本文件,我就可以使用 tar.gz 进行安装hello.c
[编辑]
我可以通过在我的. 中使用来停止将.c
文件放置在安装目录中。但是,我不确定此选项是否适用于项目中的非 python 文件include_package_data=False
setup.py