栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在没有MANIFEST.in文件的情况下包含package_data?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在没有MANIFEST.in文件的情况下包含package_data?

TL; DR

package_data
字典中的键是 ;值是glob列表。
''
不是任何Python软件包的有效名称。

如果要

bar.txt
安装在
__init__.py
软件包的旁边
foo
,请使用

 package_data={'foo': ['bar.txt']}

我有布局:

foo/        __init__.py        bar.txtsetup.py

现在,如果

foo
是上述软件包,请执行以下操作:

import setuptoolssetuptools.setup(    name='foo',    version='2015.3',    license='commercial',    packages=setuptools.find_packages(),    package_data={'foo': ['bar.txt']},)

之后

python setup.py sdist
,我检查
dist/foo-2015.3.tar.gz

% tar tfz dist/foo-2015.3.tar.gz...foo-2015.3/foo/bar.txt...

但是,如果我跑你

setup.py
package_data={'': ['foo/bar.txt']}
,我也同意了
foo/bar.txt

不会 被添加到源代码分发, 除非这个
foo-2015.3.egg-info/SOURCES.txt
已经有行
foo/bar.txt
-在这种情况下,该文件将在源分布弹出太

没有使用清单。setuptools版本是

3.6
(我故意安装了与您使用的相同的旧版本):

>>> import setuptools>>> setuptools.__version__'3.6'

上面的行为在标准中也起作用

distutils
:2.6安装“旧版”
distutils文档的软件包数据;带有2.7、3.1的注释:

Changed in version [2.7, 3.1] : All the files that match

package_data

will be added to the
MANIFEST
file if no template is provided.



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号