setup.py py2app无法与MANIFEST.in一起使用,而bdist-wheel无法与DATA_FILES现已弃用一起使用?该怎么办?

问题描述

谜题:

python3 setup.py bdist_wheel 忽略 setup.py 文件中的 DATA_FILES 部分(现已弃用),并且需要使用 MANIFEST .in 将data_files放置在dist文件夹中的正确位置。

python3 setup.py py2app 忽略MANIFEST.in,似乎需要使用setup.py文件中不建议使用的DATA_FILES部分。否则,数据文件将不在 Contents Resources 文件夹内的正确位置。

问题: 满足这两种构建类型的正确方法是什么?在下一版的setuptools和py2app中将支持该构建类型?

目标: 我有一个python程序,我想以他们可能熟悉的应用程序形式将它们部署在多个操作系统上。具体来说,我想部署到 .app 以便在 MacOS 上进行部署(使用 py2app )和 .exe Windows 10 (使用 PyInstaller )上,再加上“ sdist” “ wheel” 分发。>

但是,在解压缩和构建发行版时,将 data_folders data_files (不是.py文件)放置在正确的位置时,我遇到了问题。

我发现 setuptools 的当前文档说,“不赞成使用 data_files 。它不能轮子一起使用,因此应避免。”

为了成功制作我的 wheel 发行版,我在 MANIFEST.in 文件中定义了这些data_file。

问题: 使用MANIFEST.in时,运行 python3 setup.py的 python3 setup.py bdist_wheel python3 setup.py sdist 时会生成正确的结果py2app 无法将data_folders和文件放置在正确的位置!

我的项目具有以下形式:

project root
    |_________data_folder1
    |          |________ data.jpg
    |
    |_________data_folder2
    |          |________ data.pem
    |
    |_________src
    |          |________ __init__.py
    |          |_________main.py
    |          |_________other.py
    |
    |_________LICENSE.txt
    |_________MANIFEST.in
    |_________PKG-INFO
    |_________pyproject.toml
    |_________README.md
    |_________requirements.txt
    |_________setup.cfg
    |_________setup.py

所需的发布后结果:

dist
 |____project.app
        |_________Contents
                   |_________Frameworks
                   |_________MacOS
                   |_________Resources
                   |            |_________lib
                   |            |_________data_folder2
                   |                         |________ data.dat
                   |_________data_folder1
                   |            |________ data.jpg
                   |
                   |________ info.plist
                   |________ PkgInfo

在使用MANIFEST.in时,PY2APP会做什么?

dist
 |____project.app
        |_________Contents
                   |_________Frameworks
                   |_________MacOS
                   |_________Resources
                   |            |_________lib
                   |
                   |________ info.plist
                   |________ PkgInfo

满足Wheel和Py2App构建类型的正确方法是什么,这将在下一版的setuptools和py2app中得到支持?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...