python程序移植到手机端 python程序移植到安卓python手机版「python程序移植到手机端 python程序移植到安卓」
当使用者完成一个 Python 项目的时后,要将这个代码移交给他人可能会遇到的问题有以下三种情况:
- Python 解释器:有无安装或版本不同。
- 相关包: 代码中有需要使用的包。
- 操作系统: Windows, Mac OS, Linux等不同操作环境。
如果对方是一般使用者连编程都不会的使用者,那肯定是不会安装 Python 解释器的,所以对这样的用户而言,要递送一个 Python 开发的项目,肯定是有困难的,所以最好的方法就是将 Python 代码打包成 Windows 可以直接运行的执行文件 (.exe)。目前可以完成这样工作的包整理如下:
安装 pyinstaller
以下会以 pyInstaller 为例来说明,首先安装 pyinstaller 包
系统会自动安装与 pyinstaller 相依的包,如 pyinstaller-hooks-contrib, altgraph, pywin32-ctypes, pefile, setuptools 等,安装完毕后,可以用 pip show 观察一下安装的相关信息,因为等一下需要直接调用 pyinstaller 的执行文档,
建立 python 文档
以第 4 章的实例来进行练习,因为需要显示图形界面,所以需要先安装 PyQt 包,说明一下 matplotlib 在进行绘图时会有许多不同的用例和输出格式,从 python shell 交互式使用matplotlib,并在键入命令时弹出绘图窗口;将 matplotlib 嵌入到图形用户界面 (如 wxpython 或 pygtk ) 中来构建丰富的应用程序;透过批处理脚本中使用 matplotlib 从一些数值模拟中生成 postscript 图像;在 web 应用程序服务器中动态提供图形。
为了支持所有这些用例, matplotlib 可以针对不同的需求,产生不同的输出,每个功能都被称为后端 (backend),前端是用户面对的代码,也就是绘图代码,而后端则在幕后完成绘制图形的所有艰苦工作。有两种类型的后端:用户界面后端 (用于 pygtk, wxpython, tkinter, qt4 或 macosx 中,也称为交互后端 (interactive backends)) 和硬拷贝后端 (hardcopy backends)以制作图像文件 (PNG, SVG, PDF, PS,也称为非交互后端 (non-interactive backends))。配置后端有四种方法,以下实例用的是最后一种方法,直接在代码中调用 use() 方法,这方法将覆盖其他的设置。
plot2exe.py
建立 python 文档
下表为 pyinstaller 常用选项介绍
pyinstaller 安装在 c:퇬퇕appdata oamingpythonpython37site-packages,相对应的执行文档会放在上层的 Scripts 文件夹中,指定相对应的文件夹后,运行 pyinstaller 指定要运行的 python 文档,因为是画出一个折线图,所以指定 w 选项指定使用窗口,无控制台
图 5-1 建立一个 Python 的执行文档
运行 python 执行文档(exe)
使用 tree 命令,观察 pyinstaller 建置执行文档时,所产生的相关文档
- 目前文件夹建立一个 plot2Exe.spec 文档
- 建立 build 文件夹:建立 log 纪录文件与工作档案。
- 建立 dist 文件夹:建立执行档(.exe)
- 建立 __pycache__文件夹:放编译时需要的档案用的档案。当你在 python 中运行程序时,解释器首先将其编译为字节码,并将其存储在 __pycache__ 文件夹中。
图 5-2 运行 Python 的执行文档
无相关包
第二种情况就是 Python 文档中会导入所需要的包,所以直接给对方 Python 代码也不能运行,会出现没有相关包的错误信息,如 ModuleNotFoundError: No module named ‘xyz’ 这样的信息,所以我们需要收集开发项目所需要的包信息,常见的建议是用 pip freeze 这个命令用于生成当前 Python 环境下所有类库包列表生成 requirements.txt 文件,其它包括那些没有在当前项目中使用的类库包
可以发现这种方安装很多不必要的有类库包,建议使用 Python 所提供的 pipreqs 这个包,它可以收集指定文件夹下的 Python 文件中所导入的类库包,针对这些包来建立 requirements.txt,可以发现我门的范例只需要 3 个类库包。
有了这份文档,就可以把这份文档 requirements.txt 跟 Python 代码文档 plot2Exe.py 交给使用者,对方只需输入以下命令,就可以直接用运行了。
以上提供了简单的方式来解决项目递交的方法,但项目开发过程繁杂,还是需要有更妥善的机制来进行管理,接着将探讨如何在 Python 中建立虚拟环境,在应用程式层级建立虚拟环境,以及如何在云端建立虚拟环境。
阿勒泰版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com