在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 使用pyqtdeploy 发布你的 pyqt5 应用程序(android)

使用pyqtdeploy 发布你的 pyqt5 应用程序(android)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.97M
  • 下载次数:10
  • 浏览次数:964
  • 发布时间:2020-10-23
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
pyqtdeploy 是PyQt应用程序部署到桌面平台(windows,linux and OS X) 和 移动平台(iOS and Android)的一个工具。 Pyqtdeploy deploy targets: {android-32、ios-64、linux-32、linux-64、osx-64、win-32、win-64}
wgethttp://dl.googlecom/android/android-sdk_r24.3.4-linux.tgz 把其解压到/ home/jinfei/ Source/ android目录下解压后文件夹 android-sdk-inux 添加其路径到环境变量中,添加以下內容到~/. bashrc export ANDROID_NDK_ROOT/home/jinfei/ Source/android/android-sdk-linux 8.安装 Android sDk 下载对应 android-ndk本人下载方式在终端通过wget获得。 wgethttp://dl.googlecom/android/ndk/android-ndk-r10e-linux-x86.bin 把其cp到/ home/jinfei,/ Source/ android目录下在该路径下执行 S chmod a+x /android-ndk-r10e-linux-x86 bin $. android-ndk-r10e-linux-X86 bin 添加其路径到环境变量中,添加以下內容到~/. bashrc export ANDROID_SDK_ROOT=/home/jinfei/Source/android/android-ndk-r10e 9安装Qt551 下载对应的Qt(本人下载地址http://www.qt.io/download-open-source/) qt- opensource- linux-x86- android-5.5.1:run(选择包含 Android版本) s chmod a+x /qt-opensource-linux-x86-android-5.5.1.run /qt-opensource-linux-x86-android-5.5. 1.run 安裝过程,选择所有安装。安装在/ home/jinfei,/Qt5.51 t5.5.1 选择組件 回qt 口t 舞堡高占用六约542B的 M MinGw4.9.2 32 bit T Arruit x8G N Android armv5 F Android army Source Component 的口 t uick I v Qtd F OL Carvas 3D v Qt Quick Control D at Location v Qt script 团 Tools D OLExLr as 匚號认()全选a(取淌全选c 下 添加其路径到环境变量。 export QTDIR=/home/jinfei/Qt55 1/ 5.5/ android_armV7 export PATH=$QTDIR/bin: $S PATH export LD_LIBRARY_PATH=SQTDIR/lib: SLD_LIBRARY 10. pyqtdeploy静态编译 Python342 下载源码(本人下载地址https://www.python.org/downloads/source/ 解压到/home/ jinfei,/ Source/ statIc目录下。 S cd/home/jinfei/Source/static/Python-3.4.2 S Pyqtdeploycli--package python --target android-32 configure 备注:个人实践得知最后编译会出错的地方,在 pyatdeploy工作最后make的时候出 现 undefined reference to" PyInit -posixsubprocess的错误,因此为了不必 要的麻烦,在这里进行修改以避免之。经过 pyatdeploycll命令执行后,该目录 下此时会生成一个 python. pro文件,编辑该文件, emacs python.pro 找到以下部分代码处 greaterThan(PY_ MAJOR_VERSION, 2) MOD SOURCES = Modules/ threadmodule c Modules/signalmodule c Modules/posixmodule c Modules/posiⅸ subprocess.c\添加的代码 在 Modules/ config. c文件做如下修改 extern PyObject* PyInit symtable(void) extern PyObject* PyInit -posixsubprocess(void);添加的代码 f_symtable", PyInit_ -symtableb "_ posixsubprocess", PyInit -posixsubprocess]添加的代码 接着继续进行 python的静态编译 s qmake SYSROOT=SSYSROOT S make S make install 11. pyqtdeploy静态编译 sp-4.17 (本人下载地址https://riverbankcomputing.com/software/sip/download 备注: debian8系统默认没有安装 python sip的,所以要先为 debian主机 python3安装sp,解压该软件到某个目录,然后进行安装 pythons configure. py S make S sudo make install 开始继续接下来的静态编译sip 下载的sp417解压到/home/ jinfei,/ Source/ statIc目录下。 s cd/home/jinfei/Source/static/sip-417 S pyqtdeploycli--package sip --target android-32 configure s python 3 configure. py --static--sysroot=$ --no-tools--use-qmake configuration =sip-android cfg s gmake S make S make install 12. pyatdeploy静态编译PyQt5 (本人下载地址https:/riverbankcomputing.com/software/pyqt/download) 下载的PyQt5解压到/ home/jinfei/ Source/ static目录下。 S cd /home/jinfei/Source/static/PyQt5-gpl-5.5.1 s pygtdeploycli--package pyat5--target android-32 configure s python configure. py --static--sysroot=SSYSROOT--no-tools--no-qsci-api no-designer-plugin--no-qml-plugin--configuration=pyqt5-android cfg 备注:本人针对后面编译出错,猜测由于 pyqtdeploy对 QtLocation QtPositioning 以及_ QOpenGLFunctions_ES2存在问题,编辑目录下pyqt5- android.cfg文 件删除对应的库 接着继续进行编译,编译会很久一段时间 S make S make instal 到此,所有静态编译工作完成。 13. pyqtdeploy生成Qt工程 创建一个工程文件夹$mkdn/ home/jinfei/ Source/ project 创建一个pyqt代码文件$ touch/ home/jinfei/ Source/ project/ pyat. py from PyQt5 import QtWidgets, QtGui, QtCore Import sys if name = main app= QtWidgets QApplication(sys. argv) window=QtWidgets. QWidgeto button QtWidgets QPush Button(w) button. setText("hello jinfei window. showO app. exec_O 为了部署Pyqt应用程序App,首先要创建一个 pyqtdeploy工程。 在该目录下执行$ pyqtdeploy pyqt pdy 相关细节以及 pyatdeploy的 tutorial可以参考其官方资料,如下网址 http://pyqt.sourceforge.net/docs/pyaTdeploy/tutorial.htm pyqt.pq application source gmake ryQt Modules S: andare Library Other Packages other Extension Modules Locations Build Name IIn el Target Pyt-on version 3.4.2 Main script tile pyat. py Target Pyo- vers an itry entry pcint in application package D Use crrscle fwincliws v Applica: Ion b unde (OS X) sys.p Eth editional sys. path directories Application Package Directory Remove cll Exclude al Exclusions yd pyy Info Name:应用程序App名称,自己取一个即可 Main script file:pyqt应用程序的开始入口文件 arget Python version:对应的 python版本,一定要选对 pygt.pay File Hell Application Source make PyQt Modules Standard Library O:her Packages other Extension Modules Locatiors Buil Imported Modules O Engine QAXContainer O CtBluetoot M Q:Core O DeSigner M QiGui CtHe p Q.-ocation 口 Q- MacExtras 口 TmU timedia O QtMultime dia widgets 0 ctNe: work D Q:\fc 口 Q- operGL 口 PoStion ng 口 QtPnntspport m 口Q: quick 口Q: Quickwidgets口 sensors 0 SerialpoRt 口qtsd 口Q:5vg QTe J QLWe: Channel lWebEngirie widgets O qlWebkil 口Q. Webkilwiu 口Q: Websockets M Qtwicgets 口 QtWinExtra5 ctxIlExtras C-xmlPatterns M sip Internal openGL Modules D QOpenGLFunc: ions 20 0 QopenGLFuctio"s 2 1 0 Q0penCLFunctions 4 1 Core 0 QopenGLFunstions ES2 Add-on modules Q 口 Tchart QtDatavisualizatio" PuRchasing PyQt Modules:选择自己pyqt代码文件需要的库 pyqt pgy u ile He Appli=aLio Source yrrlake PyQL M:dules Standa"d I ibrary OLher Packages other ExLe sior Modules LucaliunIs Buid Package Use standard Python shared library □utu ndro CS K □ array D Enable ostional SSL suport □ast 口 asynchat Exterral Libary DE-INESINCLUDEPATHLIBS □ 口 ascore bz2 LZMA compressicn 口 atexit zlin compression □audi BsD db database dem datab 口bdb gdb SQLite database 口 binasco readline readline -It 口 binhex Standard Library:这一栏要选上 Android、 Linux pyat p File Help Application Source amake PyQt Modules s andare Library Other Packages other Extension Modules Location/EviN Host Python Locations interpreter /usr/E in/python.4 Source d rector hams/jinfei Source/st at c/ Python-3 4.2 Target Python Locations Include d rectory thoms jinfei Roo: in clude/pyt-on3 4 Python ibrar thomsjintei aRoo='libylibpython34a Standard library directory /hom=/jinfei aRno-ylib/py 1on.3. 4 other locations Build directory 回 gmake Thome/jinfei Qt5.. 1/ 5.5/android armv7/bin/qmake Locations:该部分是重中之重,一定要选择正确 Interpreter:电脑的 python执行路径,这里默认是系统安装的 python3 Source directory: python源码路径 Include directory:静态编译安装 python后的头文件路径 Python library:静态编译安装 python后的静态库文件 Standad library directory:静态编译好的 python标准库文件 qmake: Qt qmake执行路径 phyL Pu Fle Application Source qmake PyQ- Modules S: andard Library other Packages Other Extension Mzdules LocationsEuild Build optimis ation v No docstrings Build options y Clean before buildi □ Verbose outi Resource files Additional Build steps M Run make n ma<e □ Run application Build: pyqtdeploy建立t工程,在右侧栏 Build Options最好选择 Verbose output可以查看编译出错地方。由于是编译成 android的apk文件,选择到 Run make即可。编译成功后会成一个 build文件夹,对应里面有一个pro文件, 即qt工程文件。本人目录为/home/ jinfei/aRot/ project,/ build/ jinfei pro pyqt pay4 v)(A)( File Help Application Source qmake Pyot Mo d les Standard L bra ot ther Packages Other Extension M=dules Lo linux androidcabi g++ c Wno psabi march=arms 7 a float abi=softfp mfp u=vfp function build sections--uInwind-tables-fstack-protector -no-short-enums-DAND3OID-wa, --noexecstack-fno- optImisations bi D REENTRANT fPIC DPYQTDEN DPYQTDEPLOY O3TIMIZED-DQT O DEBUG-DQT WIDGETS LIB-CQT GUI LI3-DQT CORE LIB No asserts I,-1... include/python 4-1.'.//Qt5, 5.1/5, 5/android No docstrir gs qt55.1/5.5andrid_armvincludaotcrel.-J,4./andoid-ndk-roe/sourcescxx-stgnulihstdc +/4.8 include.. /android nd<-r10e/sources/cxx-stl gnu- bstdc++/4. 8/ibs/armea i-v7al Build opt ions include l,/.. android ndk rloc clatfo ms android Farc" arr// nclude l, ./,/Qt55. 1/5.5/ android armv7/rmkspecs'android-g++o gre pyatdeploy o gre pyqt deploy. cpp v clean before bu lding thome/jinfei/android-ndk-r10ertoolchains/ar-i-linux-androide abi-48/prebuilt AlinJx-x86/in/am Inux-androideabl-g++--sysroot= home/jInfelfandrold-ndk-rlce/platforms androld-9/arch-arm/ 口 Verbose output ,-soname, libjirfei so -. -rpath=Thor-ejirteiyQt55./5. 5/android armv7 lib -wl--no-ndeFined Wl -z. noexecstackshared -o libjinfei so pyctdeploy main, o pyqtdeploy start, o Resourc pdytools-module.o qre_pyqtdeplay o L/home/jinf=i/ancroid ndk rlo c/sources/cxo stlgnu libstdo +/4./ibs/arme abi-v7a-Lnome/jinfe /and -Did-ndk- r10e/platforms/android-g'arch-arm//usr/./ Additional Build step oe rjinfeilaRoot/ib/python. 4/site-packages --/home/jinfei/a Ro ot/ ib/python3, 4'site packagcsipyQt5 IQtG-i lQt Core lQtwidgcts Whom/jirfci/a Raowurcesicxox-stlgnu-libst dc++/4./ ib lprthon3 4 L/hame/inci/ y Run gmake Qt5.5.1/5. 5/andr=id armv/lib -lQt -L/opt/androidndk/s ibs/armeabi-v7a-Lyopt/android/ndk/platformsfandroid-9'arch-arm/usr/lib 5 Gui-lQ-5Co M Run mako IGLESv2-Ignustlshared -llog-Iz-Im-ldl-Ic -igcc 口 Run application make succeeded 14. Qtcreator部署 pyqt for android 1) android-sdk的 setup s cd/home/jinfei/Source/ android/android-sdk-linux/tools S /android sdk ArIdi uid SDK Marage V(Ax Pac<agesTools SDK Path: /hcmefinfei/a dreid- sdlc-linux Packages p Name AP Rev. stEtus 7口_ Tools 口 Android sDk Tols 25.1.lM Installed O Android SDK P atform-tools 231感 Installed Android SDK Build-tools 23,0.3! Installed 口 Android sDk Build-tools 23.0.2! Not instaTed 口 Android sok build- tools 23.0.1 Not instal 口 Android sok build- tools 2201: Not instaLled [d Android sDK Build-tools d Android sDK Build-tools Net insta 口 Android sDk Buld- tools 19.1: Not instated O E Android N(A=1 23, N preview DK Pla orm android n p Vo Android TV intel atom System image N I Not instaTed YL intel x86 Atom 64 System image O Not instaTed VE /nte x86 Atom System /mage I Not instaTed shcw: Updates/New M Istalled Select New or _pdates 「nsta13 packages □ bolete Deselect Al‖l Delete package Done loading packages SDK Manager第一次运行起来了,它需要在线下载SDK的描述信息,请耐心等等一 下。等到 SDK Manager更新了在线的SDK描述信息后,把可以下载的SDK及工具都列 了出来。选择性下载所需,如果网速与内存允许,可以全部下载 S /android avd 点击“ Create"创建新的安卓模拟器;该部分可以自行上网 google android avd。 这里是创建一个 android虛拟器。可以设置各个信息 【实例截图】
【核心代码】

标签:

实例下载地址

使用pyqtdeploy 发布你的 pyqt5 应用程序(android)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警