MANIFEST.in在“ python setup.py安装”中被忽略-未安装数据文件?

史蒂文·斯普罗特(Steven Sproat):

这是我精简后的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'],
)

清单在:

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

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

所以:

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

这反映了我程序的源代码,即所有内容应该是正确的。

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

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

如何获得“安装”以创建此目录结构?据我所知,它似乎无视我的清单文件。

卡尔·迈耶(Carl Meyer):

除了Ned的答案(涉及核心问题)以外,还有一些注意事项:

Distutils不会在site-packages(或dist-packages在Debian / Ubuntu上)的每个项目子目录中安装Python软件包和模块site-packages如您所见,它们直接安装在中。因此,whyteboard-xxsdist中的包含目录将不会以最终安装的形式存在。

这意味着您应该谨慎地命名您的名称data_files,以阐明它们属于哪个项目,因为这些文件/目录直接安装在全局site-packages目录中,而不是在任何包含whyteboard目录中。

或者你可以反而让你的数据package_data中的whyteboard包(这意味着它需要生活里面那个包,即旁__init__.py),然后这不是一个问题。

最后,同时包含whyteboard.py模块py_moduleswhyteboard/__init__.py并没有多大意义packages两者是互斥的,并且如果两者都使用,则whyteboard.py导入将忽略模块,而使用相同名称的软件包。

如果whyteboard.py只是一个脚本,并且不打算导入,则应使用脚本选项,然后将其从中删除py_modules

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么setuptools无法安装MANIFEST.in中命名的“数据文件”?

Python setup.py开发与安装

python setup.py构建忽略一些文件

使用setuptools使用Python库安装已安装的数据文件位置

python setup.py:安装tensorflow还是tensorflow-gpu?

ImportError:无模块... python setup.py安装后

没有sudo的python setup.py安装

`python setup.py test` 是否安装依赖项?

python setup.py安装'g ++-4.2'失败

setup.py包含自定义数据文件

在setup.py中包含数据文件

setuptools python setup.py安装未复制所有子模块

Windows python setup.py安装不会分发模块python文件

pip3不会安装我的数据文件,尽管我的setup.py具有include_package_data

使用setup.py安装.desktop文件

使用setuptools打包并用pip安装后,Python代码看不到数据文件

如何使“ python setup.py install”安装源而不是egg文件?

使用python的setuptools / setup.py编译和安装C可执行文件?

python安装失败,文件“ setup.py”,第1023行,SyntaxError:语法无效

在python setup.py中,如何允许用户无需先进行构建即可安装模块的文件?

如何编写setup.py来安装SWIG构建的python扩展(xxx.so文件)?

Python的“ setup.py安装”的步骤“ build_py”中的隐式错误

Python打包:数据文件已正确放置在tar.gz文件中,但未安装到虚拟环境中

如何通过 python setup.py develop 找到 python 模型安装的 .egg-link 文件,当它不在通常的位置时?

安装python软件包,并显示“命令“ python setup.py egg_info”失败”吗?

安装包时获取命令“python setup.py egg_info”错误 - Python

仅当使用Inno Setup安装较新版本的应用程序时,才覆盖现有数据文件

使用python setup.py egg_info时安装scikits.audiolab时出错

如何将用于 Python3 安装的 VTK 包含到 setup.py 中?