背景:我有一个负责安全的源文件。其中有魔术键和特定算法。
是否可以从 python 蛋或轮包中删除这个单一的源文件?
我已经完成了使用 egg 命令只发送二进制文件。
python setup.py bdist_egg --exclude-source-files
Run Code Online (Sandbox Code Playgroud)
编辑项目结构:
??? setup.py
??? src
| ??? __init__.py
| ??? file1.py
| ??? file2.py
| ??? file_to_exclude.py
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我有一个test包含敏感代码的小辅助函数。为了屏蔽此代码,我hello.pyx在包中编写并使用了该函数mypackage。
我可以通过将setup.pyfor 包修改为以下内容来构建和使用它:
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,
)
Run Code Online (Sandbox Code Playgroud)
但是,当我通过python setup.pyor构建/安装它时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通过include_package_data=False在我的setup.py.. 中使用来停止将文件放入安装目录