如何从 distutils 二进制发行版中剥离源代码?
我想从 distutils 创建一个仅字节码的发行版(不,我确实这样做;我知道我在做什么)。使用 setuptools 和 bdist_egg 命令,您可以简单地提供 --exclude-source 参数。不幸的是标准命令没有这样的选项。
- 有没有一种简单的方法可以在创建 tar.gz、zip、rpm 或 deb 之前剥离源文件。
- 是否有一个相对干净的每命令方法来执行此操作(例如仅针对 tar.gz 或 zip)。
I want to create a bytecode-only distribution from distutils (no really, I do; I know what I'm doing). Using setuptools and the bdist_egg command, you can simply provide the --exclude-source parameter. Unfortunately the standard commands don't have such an option.
- Is there an easy way to strip the source files just before the tar.gz, zip, rpm or deb is created.
- Is there a relatively clean per-command way to do this (eg just for tar.gz or zip).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
distutils“build_py”命令是最重要的命令,因为它被创建发行版的所有命令(间接)重用。如果您覆盖 byte_compile(files) 方法,类似于:
您应该能够做到这一点,以便在将源文件复制到“安装”目录(这是 bdist 时的临时目录)之前从构建树中删除源文件命令调用它们)。
注意:我没有测试过这段代码; YMMV。
The distutils "build_py" command is the one that matters, as it's (indirectly) reused by all the commands that create distributions. If you override the byte_compile(files) method, something like:
You should be able to make it so that the source files are deleted from the build tree before they're copied to the "install" directory (which is a temporary directory when bdist commands invoke them).
Note: I have not tested this code; YMMV.
试试这个:
Try this:
也许这里有完整的工作代码:)
Maybe a full working code here :)
“标准命令没有这样的选项”?
您是否安装了最新版本的
setuptools
?您是否编写了 setup.py 文件?如果是这样,这应该可以工作:
python setup.py bdist_egg --exclude-source-files
。"the standard commands don't have such an option"?
Do you have the latest version of
setuptools
installed? And did you write asetup.py
file?If so, this should work:
python setup.py bdist_egg --exclude-source-files
.