Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

PyInstaller将Python应用打包为Android应用程序

2024-09-02 1 min read Docs Ronan

在移动应用开发中,Python虽然不如Java或Kotlin那样广泛使用,但仍有一部分开发者偏爱使用Python进行开发。PyInstaller是一个将Python应用打包成独立可执行文件的工具,它支持多种操作系统,包括Windows、Linux和macOS。更为重要的是,通过一些额外的配置和工具,PyInstaller还能够将Python应用打包成Android APK文件,使得Python应用能在Android设备上运行。

1. 安装PyInstaller

首先,你需要确保你的开发环境中已经安装了Python和pip。然后,你可以通过pip来安装PyInstaller。打开命令行或终端,输入以下命令:

pip install pyinstaller

2. 准备你的Python应用

在打包之前,你需要确保你的Python应用能够正常运行,并且所有依赖都已经正确安装。此外,你的应用应该能够在一个没有图形用户界面的环境中运行,因为Android设备可能没有图形界面。

3. 使用PyInstaller打包应用

在你的Python应用所在的目录下,打开命令行或终端,输入以下命令来打包你的应用:

pyinstaller --onefile --name=your_app_name your_app_script.py

这里,--onefile选项表示将你的应用打包成一个单独的可执行文件,--name选项用于指定打包后的应用名称,your_app_script.py则是你的应用的主脚本文件。

4. 配置Android打包

要将Python应用打包成Android APK文件,你需要使用一个名为python-for-android的工具。你可以通过pip来安装它:

pip install python-for-android

安装完成后,你可以在python-for-android的目录下找到一个名为buildozer.spec的配置文件。你需要编辑这个文件来配置你的应用。

buildozer.spec文件中,你需要设置以下几个关键项:

  • title: 你的应用的名称
  • package.name: 你的应用的Python包名
  • package.domain: 你的应用的网站域名(可选)
  • source.include_exts: 需要包含的文件扩展名,例如.py, .kv, .atlas
  • requirements: 你的应用所依赖的Python库和模块

5. 使用Buildozer打包APK

配置完成后,你可以在命令行或终端中运行以下命令来打包你的应用:

buildozer init
buildozer android debug

第一个命令会初始化Buildozer的配置,第二个命令则会开始打包过程。打包完成后,你会在bin/目录下找到一个名为your_app_name-0.1-debug.apk的文件,这就是你的Android应用APK文件。

6. 在Android设备上安装APK

最后,你可以将这个APK文件安装到你的Android设备上。你可以通过ADB工具来安装,也可以在设备上使用文件管理器来安装。

结语

通过以上步骤,你就可以使用PyInstaller将你的Python应用打包成Android APK文件,并在Android设备上运行了。虽然这个过程相对复杂,但是一旦你掌握了它,你就可以轻松地将你的Python应用部署到更多的平台上,让更多的人使用你的应用了。

「Python」模块和包

2024-09-02 3 min read Docs Ronan

Python 提供了强大的模块支持,主要体现在,不仅 Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块。通过这些强大的模块可以极大地提高开发者的开发效率。

那么,模块到底指的是什么呢?Python 模块(Module),是一个 Python 文件,以 .py 结尾,也就是 Python 程序的后缀名。 模块能定义函数,类和变量,模块里也能包含可执行的代码。用作模块的程序与其他的程序并没有什么区别。

模块的作用: python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能, 比如实现与数学相关的功能就可以使用 math 模块,我们可以这样理解,每个变量,函数,类都是一个工具,而模块则是一个工具箱,里面可以放很多工具。当我们想要使用某个工具的时候,我们不需要现场制造(写新的代码),只需要拿出来含有相对应工具的工具箱即可(导入相对应的模块)。

1. 模块的导入方式

在 Python 中,模块使用前需要先导入,导入语法如下:

# 将整个模块导入
import 模块名
# 将整个模块导入,并且在程序中用别名代替模块名
import 模块名 as 别名
# 导入模块名中的某个类,变量,方法
from 模块名 import变量方法等
# 导入整个模块
from 模块名 import *
# 导入模块的某个功能,并用别名替代功能名
from 模块名 import 功能名 as 别名

注意:import 模块名/import 模块名 as 别名from 模块名 import * 使用区别的。使用 import 的导入模块,在使用模块中的功能时,必须以模块名.功能名的形式调用。

使用 as 别名 来导入时,给模块重新命名一个名字,可能是因为防止名称重复,也可能是为了方便书写。

以导入并使用 math 模块为例:

# 使用 import 语句导入 math 模块
import math

# 使用 math 模块中的π的值,
print(math.pi)
# 使用 math 函数中的 三角函数
print(math.sin(math.pi / 2))


# 使用 mport 模块名 as 别名,导入 math 模块
import math as m

print(m.pi)
print(m.sin(m.pi / 2))


# 使用 from 模块名 import * 导入 math 模块
from math import *

print(pi)
print(sin(pi / 2))


# 使用 from 模块名 import 类,变量,方法等
from math import pi, sin

print(pi)
print(sin(pi / 2))

# 使用 from 模块名 import 功能名 as 别名
from math import pi as pai
from math import sin as sine

print(pai)
print(sine(pai / 2))

2. 自定义模块

Python 中已经帮我们实现了很多模块,但是有些时候,我们还需要一些个性化的模块,这时就可以通过自定义模块实现。

Continue reading

「python」Conda虚拟环境

2024-09-02 2 min read Docs Ronan

安装conda

# macOS 安装 miniconda ,在终端输入以下命令
brew install miniconda

创建一个新的虚拟环境

可以使用以下命令创建一个名为 jupyter_env 的新环境,并指定 Python 版本(例如 Python 3.11)

conda create -n jupyter_env python=3.11

通过上面命令创建的虚拟环境通常会保存在主环境目录,如果想指定虚拟环境的位置,可以使用下面的命令

指定路径:如果你在创建环境时使用了 -p--prefix 选项指定路径,环境会存储在你指定的位置。

conda create -p /my/custom/path/env_name python=3.11

激活环境与退出环境

激活新创建的名为 jupyter_env 的环境:

conda activate jupyter_env

退出已激活环境:

conda deactivate

列出所有虚拟环境

首先,你可以列出所有已创建的虚拟环境(以下命令二选一):

conda env list
conda info --envs

这会显示所有环境的名称和路径。


删除虚拟环境

  • 删除指定名称的虚拟环境:
conda remove --name ENV_NAME --all

其中 ENV_NAME 是你要删除的环境的名称,--all 选项表示删除整个环境及其所有包和依赖项。

  • 删除指定路径的虚拟环境

如果你是通过指定路径创建的环境,可以使用路径来删除:

Continue reading
Older posts Newer posts