在Egg包存档中包含目录

时间:2018-06-11 21:23:39

标签: python python-3.x setuptools

所以,我正在阅读setuptools的这份备忘录:

resource_filename(package_or_requirement, resource_name)
     

有时,以字符串或流形式访问资源是不够的,并且需要真正的文件系统文件名。在这种情况下,您可以使用此方法(或模块级函数)来获取资源的文件名。如果资源位于存档分发中(例如压缩的egg),则会将其解压缩到缓存目录,并返回缓存中的文件名。 如果指定的资源是目录,则还会提取该目录中的所有资源(包括子目录)。如果指定的资源是C扩展名或“eager resource”(有关详细信息,请参阅setuptools文档) ,然后同时提取所有C扩展和急切资源。

注意重点。

问题:如何将目录添加到*.egg文件?我有setup.py这个内容:

setup(
    ...
    package_data={
        'some_package/web': ['web', 'web/*.html', 'web/*.js', 'web/*.css'],
    },
    data_files=[('some_package/web', [
        'web/index.html',
        'web/index.js',
        # 'web,' -- cannot add because this is not a regular file!
    ])],
    ...
)

好吧,setuptools明确地告诉我我无法添加目录......所以,如果没有手工编辑*.egg文件,我该如何实际添加目录?

如果我稍后尝试:pkg_resources.resource_filename(__name__, 'web')它失败,因为*.egg存档不包含web目录,只包含该目录中的文件。

顺便说一句。 MANIFEST.in允许提及目录,但不会将其添加到存档。

0 个答案:

没有答案