gpt4 book ai didi

python - 使用 distutils 制作适合 zipimport 的包

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:21 26 4
gpt4 key购买 nike

我将 python 嵌入到我正在创建的应用程序中,我正在寻找一种方便的方法来分发 python 代码。我最近阅读了有关 zipimport 的内容,并认为这是一种分发我所有 python 代码而不是包含完全展开的树的便捷方式。所以,我设置我的包与此类似:

.
├── setup.py
└── testpack
├── __init__.py
└── pack1
├── foo.py
└── __init__.py

setup.py 看起来像:

from distutils.core import setup

setup(
name='testpack',
author='FatalError',
version='1.0',
packages=['testpack.pack1']
)

然后我运行了 python setup.py bdist --format=zip。但是当我查看 zip 的内容时:

$ unzip -l testpack-1.0.linux-x86_64.zip 
Archive: testpack-1.0.linux-x86_64.zip
Length Date Time Name
--------- ---------- ----- ----
183 2013-03-13 10:47 usr/local/lib/python2.7/dist-packages/testpack-1.0.egg-info
152 2013-03-13 10:47 usr/local/lib/python2.7/dist-packages/testpack/pack1/__init__.pyc
181 2013-03-13 10:47 usr/local/lib/python2.7/dist-packages/testpack/pack1/foo.pyc
0 2013-03-13 10:41 usr/local/lib/python2.7/dist-packages/testpack/pack1/__init__.py
33 2013-03-13 10:41 usr/local/lib/python2.7/dist-packages/testpack/pack1/foo.py
--------- -------
549 5 files

很明显,结果(并不奇怪)不适合与 zipimport 一起使用。相反,这是一个 zip 存档,可以在 / 处解压缩以安装包。

有什么方法可以让 distutils(或 setuptools 等)代替构建包,以便它可以与 zipimport 一起使用?由于我的代码确实是特定于应用程序的,因此它不属于安装到系统库中。

我意识到我可以自己编写脚本,但是,那有什么好玩的呢?例如,我想确保所有内容都已预编译,并且我的包中包含一个不打算分发的单元测试包。所以,我希望这些工具之一可以为我完成。

最佳答案

egg 存档支持 zipimport(除非有相反标记,在这种情况下它们将在安装期间解压缩)。

使用 python setup.py bdist --formats=egg

关于python - 使用 distutils 制作适合 zipimport 的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com