python - MANIFEST.in 在 "python setup.py install"上被

这是我精简后的 setup.py 脚本,其中删除了非代码内容:

#!/usr/bin/env python

from distutils.core import setup
from whyteboard.misc import meta


setup(
    name = 'Whyteboard',
    version = meta.version,

    packages = ['whyteboard', 'whyteboard.gui', 'whyteboard.lib', 'whyteboard.lib.pubsub',
                'whyteboard.lib.pubsub.core', 'whyteboard.lib.pubsub.utils', 'whyteboard.misc'],

    py_modules = ['whyteboard'],
    scripts = ['whyteboard.py'],
)

MANIFEST.in:

include *.txt
include whyteboard-help/*.*
recursive-include locale *.mo
recursive-include images *.png

当我运行“python setup.py install sdist”时,我会得到一个不错的 .tar.gz,其中包含一个“whyteboard-0.41”根文件夹,其中包含我的 locale/images/和 whyteboard-help/文件夹。这也有我的whyteboard.py 脚本,它从whyteboard 源包中启动我的程序。

所以:

whyteboard/
 ├── locale/
 ├── images
 ├── whyteboard-help/
 ├── whyteboard/
 │  ├── __init__.py
 │  └── other packages etc
 ├── whyteboard.py
 ├── README
 ├── setup.py
 └── CHANGELOG

这反射(reflect)了我的程序的来源,一切都应该是这样,并且是正确的。

但是,当我运行“python setup.py install”时,我的任何数据文件都没有被写入 - 只有“whyteboard”源包,whyteboard.py 放在/usr/local/lib/python2.6/dist -packages/。

理想情况下,我希望在 dist-packages 中创建与 .tar.gz 文件中生成的目录结构相同的目录结构,因为这是我的程序期望查找其资源的方式。

我怎样才能“安装”来创建这个目录结构?据我所知,它似乎忽略了我的 list 文件。

最佳答案

MANIFEST.in 告诉 Distutils 在源代码分发中包含哪些文件,但它不直接影响安装的文件。为此,您需要在 setup.py 文件中包含适当的文件,通常为 package data或 additional files .

关于python - MANIFEST.in 在 "python setup.py install"上被忽略 - 没有安装数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3596979/

相关文章:

c++ - #将所有 .cpp 文件包含在一个编译单元中?

jenkins - 在多个同时上游作业成功后,如何让 Jenkins 作业开始?

.net - 为什么 .NET 中不需要 Maven?

android - 如何使用 Ant 构建 Android 示例项目? build.xml 不存在

iphone - 如何在 Xcode 中减少构建时间/加快编译时间?

java - 无法找到 tools.jar

c++ - 为多个项目和配置有效地使用 Visual Studio 项目属性

android - 多个 dex 文件定义 Lorg/apache/cordova/BuildHel

java - .NET 世界是否有 Maven 替代方案或端口?

go - 如何编译由多个文件组成的 Go 程序?