gue*_*tli 24 python packaging manifest setuptools setup.py
我怎么能包括package_data为sdist没有MANIFEST.in文件?
我的setup.py看起来像这样:
import setuptools
setuptools.setup(
name='foo',
version='2015.3',
license='commercial',
packages=setuptools.find_packages(),
package_data={'': ['foo/bar.txt']},
)
Run Code Online (Sandbox Code Playgroud)
版本:
user@host> python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
>>> import setuptools
>>> setuptools.version.__version__
'3.6'
Run Code Online (Sandbox Code Playgroud)
我只是不能被foo/bar.txt包括在内.
或者这篇博文仍然是真的吗? http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging-documentation-on--package_data-/
然而,在过去的一小时里,我了解到这些陈述介于"危险的误导"和"该死的谎言"之间.这是因为Python包的主要类型是源包,而创建源包的规范方法是使用setup.py sdist.但是,package_data中指定的数据不包含在源代码分发中 - 它们仅包含在binary(setup.py bdist)发行版和installs(setup.py install)中.
我怎么能包括package_data为sdist没有MANIFEST.in文件?
Ant*_*ala 42
TL; DR:package_data词典中的键是 包 ; 值是globs列表.''不是任何Python包的有效名称.
如果您希望bar.txt安装在__init__.py软件包旁边foo,请使用
package_data={'foo': ['bar.txt']}
Run Code Online (Sandbox Code Playgroud)
我有布局:
foo/
__init__.py
bar.txt
setup.py
Run Code Online (Sandbox Code Playgroud)
现在,如果foo是上面的包,请执行:
import setuptools
setuptools.setup(
name='foo',
version='2015.3',
license='commercial',
packages=setuptools.find_packages(),
package_data={'foo': ['bar.txt']},
)
Run Code Online (Sandbox Code Playgroud)
之后python setup.py sdist,我查看了内容dist/foo-2015.3.tar.gz
% tar tfz dist/foo-2015.3.tar.gz
...
foo-2015.3/foo/bar.txt
...
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行你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'
Run Code Online (Sandbox Code Playgroud)
上述行为也适用于标准distutils:2.6安装 "legacy"distutils文档的包数据 ; 评论为2.7,3.1:
版本[2.7,3.1]中已更改:如果未提供模板,则所有匹配的文件
package_data都将添加到MANIFEST文件中.
小智 13
我有同样的问题,并修复它删除:
include_package_data=True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13677 次 |
| 最近记录: |