Ram*_*hum 25 python packaging egg setuptools
我维护了一些Python包.我有一个非常相似的setup.py文件.但是,在做的时候setup.py install,我的一个软件包被安装为一个鸡蛋,而其他软件包被安装为"鸡蛋文件夹",即扩展名为"egg"的文件夹.
它们之间有什么区别导致这种不同的行为?
ax.*_*ax. 25
如果
zip-safe存在,则意味着项目在作为.eggzipfile 安装时将正常工作,相反存在not-zip-safe意味着项目不应该作为.egg文件安装[即.作为.egg目录].zip_safesetuptools 的选项setup()确定将写入哪个文件.如果未提供该选项,则setuptools会尝试根据代码和内容分析自行评估程序包是否可以正常工作.
单个egg 文件实际上是一个包含特定目录结构的zip 存档。每对的zipimport文件,只有.py,.pyc和.pyo文件可以从zip文件导入。因此,如果包需要导入其他类型的模块资源(如编译的 c 代码;.so文件、.pyd文件),它将无法作为 zip 文件工作。
我不知道这是否是某些鸡蛋无法用作 zip 存档的唯一原因,但我认为这是主要原因。