所以,我正在阅读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
允许提及目录,但不会将其添加到存档。