相关疑难解决方法(0)

从 python bdist_egg 或 bdist_wheel 中排除单个源文件

背景:我有一个负责安全的源文件。其中有魔术键和特定算法。

是否可以从 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)

谢谢你的帮助!

egg setuptools python-wheel

8
推荐指数
1
解决办法
2274
查看次数

Cython:控制 cythonize 停止将编译的 .c 文件从 .pyx 文件放置在安装目录中

我有一个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.. 中使用来停止将文件放入安装目录

python cython python-2.7 cythonize

2
推荐指数
1
解决办法
1472
查看次数

标签 统计

cython ×1

cythonize ×1

egg ×1

python ×1

python-2.7 ×1

python-wheel ×1

setuptools ×1