eri*_*i0o 11 python pyqt setup.py python-3.x pyqt5
我在这看了这个问题:
可以从setuptools setup.py中要求PyQt吗?
分发具有gui的python应用程序并且它基于PyQt的正确方法是什么?(我使用的是PyQt5和Python3)
我还在学习如何分发东西,所以我不知道我的问题是否有意义.
编辑:
答案是正确的,sudo pip3 install .为我自己的setup.py文件工作,但显然pyqt5不包括QtWebKitWidgets模块,并且它不能安装在pip3的单独包中.所以现在我正在考虑完全脱离Python并使用Javascript + Electron作为一种易于运行的多平台语言进行开发.
总之一句话是,只要你限制PyQt5和Python3您的支持.
setup.py通常通过从Python包索引(PyPi)请求包来提供指定的要求.直到最近,这些软件包才是源代码,这意味着依赖于PyQt5的安装只能在可以从源代码构建它的系统上运行.特别是在Windows上构建需要相当多的设置,因此这会使您的应用程序无法使用或无法执行此操作的任何人.
注意:据我所知,实际上从来没有可能通过PyPi从源代码构建.标准方法是从Riverbank软件下载源/二进制文件并从那里构建/安装.
通过引入Python Wheels解决了这个问题,它提供了一种安装C扩展包的方法,而无需在目标系统上进行编译.这是通过特定于平台的.whl文件实现的.Python3上PyQt5的轮子可以在PyPi上用于多种平台,包括MacOS X,Linux(任何),Win32和Win64,它们应该涵盖大多数用途.
例如,这是在Mac上在Python3上安装PyQt5时的输出:
mfitzp@MacBook-Air ~ $ pip3 install pyqt5
Collecting pyqt5
Downloading PyQt5-5.6-cp35-cp35m-macosx_10_6_intel.whl (73.2MB)
100% |????????????????????????????????| 73.2MB 2.5kB/s
Collecting sip (from pyqt5)
Downloading sip-4.18-cp35-cp35m-macosx_10_6_intel.whl (46kB)
100% |????????????????????????????????| 49kB 1.8MB/s
Installing collected packages: sip, pyqt5
Successfully installed pyqt5-5.6 sip-4.18
Run Code Online (Sandbox Code Playgroud)
要设置PyQt5作为自己包的依赖简单地将其指定为您的正常setup.py如install_requires=['PyQt5']
在这里你有几个选择.以上意味着安装了Python3的任何人现在都可以使用安装您的应用程序pip.但是,这假设最终用户拥有Python并知道它是什么pip.如果您希望使用Windows安装程序,MacOSX"app"软件包或Linux软件包分发应用程序,则需要使用专用于此目的的工具之一.
.whl文件,在许多情况下可以解决这个问题.到目前为止,如果您只针对Windows,这是最简单的..app从您的定义中创建捆绑包setup.py.最大的优势是自定义处理程序,允许您调整麻烦包装的包装.如果您只是针对MacOSX,这可能是您的最佳选择.setup.py定义构建Debian风格的包.注意:可以编写一个非常复杂的版本setup.py,允许您使用不同平台上的一个或多个工具进行构建,但setup-py2app.py为了清晰起见,我通常最终会存储单独的配置(例如).