如何解决如何获取setup.py以仅复制与目标平台匹配的源和二进制文件
问:如何获取 setup.py 以安装与目标相对应的 ONLY 二进制文件平台。
背景:我的Python项目包含使用 subprocess.run()在子进程中运行的帮助程序的预先存在的二进制文件。因为我们的代码旨在部署到多个OS平台,所以部署到的每个目标平台都有一个目录,如下所示的目录树。
实际的python源代码能够使用 platform.system()和 platform.machine() 选择合适的二进制文件在运行时使用。
我的开发系统上存在的文件树:
? PycharmProjects
? pythonProject
? external_apps_bin
? linux64
? amd64
? app1
? app2
? app3
? arm64
? app1
? app2
? app3
? i686
? app1
? app2
? app3
? macos64
? app1.app
? app2
? app3
? win64
? app1.exe
? app2.exe
? app3.exe
? src
目标/预期结果:
当用户使用 pip 安装 .whl软件包时,我想避免所有其他平台的无用二进制文件占用大量存储空间。 / p>
例如,如果我在MacOS机器上,我希望安装后的文件树看起来像这样:
我要用于MacOS系统的安装文件树:
? PycharmProjects
? pythonProject
? external_apps_bin
? macos64
? app1.app
? app2
? app3
? src
尽管该软件安装在具有i686处理器的Linux平台上,但我希望它显示在该文件树中。
我要用于Linux i686系统的安装文件树:
? PycharmProjects
? pythonProject
? external_apps_bin
? linux64
? i686
? app1
? app2
? app3
? src
我尝试过的事情:
我尝试在 setup.py 内使用 if条件,该函数对platform.system()和platform.machine()进行调用以更改MANIFEST中的文件夹列表.IN。
该方法失败了,因为setup.py在BUILD计算机上运行,而不是在INSTALL目标上运行,因此,无论INSTALL目标平台是什么,它始终仅包含与BUILD系统目标匹配的文件。
什么是确保仅针对安装目标平台的正确目录并保留在安装目标计算机上的正确方法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。