【Python】Python项目打包发布(三)(基于Aardio打包多目录项目)

Python项目打包发布汇总

【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目)
【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目)
【Python】Python项目打包发布(三)(基于Aardio打包多目录项目)
【Python】Python项目打包发布(四)(基于Nuitka打包PySide6项目)
【Python】Python项目打包发布(五)(制作Windows安装包)

一、Aardio介绍

aardio 专注于桌面软件开发,17年一直保持非常活跃地更新( 更新日志 ),aardio 被多年用于生产项目实践,久经测试和锤炼。
官网链接:https://www.aardio.com/

二、Aardio与Python混合编程

aardio 编程语言快速入门 —— 语法速览
aardio + Python 开发桌面软件快速入门
重点更新 aardio + Python, Java,附带几个重要的小知识

三、基于Aardio打包Python多目录项目

1.Python项目说明

Python项目结构为:

- MyProject
	- In
	- Out
	- App
		- __init__.py
		- app.py
		- MainProgram
			- __init__.py
			- 1.py
			- 2.py
			- main.py

打包目标;

- MyProject
	- In
	- Out
	- App
		- App.exe

2.具体流程

2.1 新建Aardio项目

可以选择空白工程,也可以选择Python项目。
在这里插入图片描述

2.2 Aardio项目结构

选择Python模板,会自动生成py目录
在这里插入图片描述
以下摘自官方范例,具体自行查看

//Python 模块请放在工程目录的 /py 目录下,
string.save("/py/myHttp.py",pyCode );//创建一个自定义模块文件

/*
默认在以下两个目录搜索 Python 模块:
这两个目录都会在生成 EXE 时复制到发布目录(即使 "\py" 目录没有添加到工程中)

	"\py"
	"~\lib\py3\.res\DLLs" 
	
"\py" :	
	文件路径开始为单个斜杠(或反斜杠)表示应用程序根目录,
	应用程序根目录在开发时指工程根目录(工程外单独启动代码则为文件所在目录),
	发布后应用程序根目录就是指 EXE 所在的目录。

"~\lib\py3\.res\DLLs" : 
 
	aardio 规定文件路径开始为波浪线表示 EXE 所在的目录(开发时为 aardio.exe 所在目录)。
	
可以自己添加模块搜索路径,例如:

	py3.appendPath("\py\site-packages\");
*/



/*
aardio 内默认的 Python 搜索模块的路径为:
"~\lib\py3\.res\Lib.zip" //为避免升级时被替换,不建议在这里添加模块,而且有些模块放到 zip 文件加载里会出错。
"~\lib\py3\.res\DLLs" //在这个目录下添加的文件会在发布时复制到发布目录。
"\"
"\py"
"\py\Python+版本号\site-packages" py3.pip 安装的模块默认放这里

aardio 规定文件路径开始为波浪线表示 EXE 所在的目录(开发时为 aardio.exe 所在目录),
文件路径开始为斜杠(或反斜杠)表示应用程序根目录,应用程序根目录在开发时指工程根目录(工程外单独启动代码则为文件所在目录),
发布后应用程序根目录就是指 EXE 所在的目录。
*/

在Aardio中py目录,默认是不能同步的,需修改本地构建为False。本项目为了打包方便,删除并新建了py文件夹。
在这里插入图片描述
另外,需要注意的是:各文件夹的属性

1、忽略目录:设为 true 以后,在发布时会忽略这个目录。
2、内嵌资源:指的是这个目录在发布后会嵌入 EXE 资源,不需要放在外部目录了。aardio 中的很多读文件的函数都支持这种资源目录,不需要修改任何代码,例如读文件的 string.load() 函数,运行模板的 string.loadcode() 函数 …… 但第三方程序不支持,例如 Python 就不支持,所以 Python 模块不要放在 /res/ 目录下。
3、本地构建:要理解这个属性,先要了解一下工程中的目录是『虚拟目录』,并不完全等价于硬盘目录。如果一个文件在工程目录下,但却没有被添加到工程管理器中,那么 aardio 会忽略它。

2.3 导入Python项目到Aardio中

  • 直接将Python主程序目录复制到py文件夹,py文件夹目录页结构为:
- py
   - App
   		- __init__.py
   		- app.py
   		- MainProgram
   			- __init__.py
   			- 1.py
   			- 2.py
   			- main.py
  • 在Aardio添加py文件夹并同步
    在这里插入图片描述

2.4 Aardio中链接Python代码

2.4.1 可以先画个界面

切换至设计视图,添加界面控件
在这里插入图片描述

2.4.2 链接Python代码测试
/*
执行 aardio 工程中的内嵌资源文件可以这样写: 
py3.exec("/res/test.py") 

也可以用导入模块的方式,例如导入 /py/pyMain.py 文件
py3.import("pyMain")
*/

Aardio中可以使用py3.exec方法执行res目录下Python代码,但是需要注意的是:/res/ 是 EXE 内嵌资源目录,不要将 Python 模块不要放在 /res/ 目录下。

以下为测试,方便理解Aardio调用Python:
Python文件目录结构为:
同级目录时:

- aa.py
- bb.py

在这里插入图片描述
在这里插入图片描述
这样调用可以运行:
在这里插入图片描述
res目录下不能作为模块被引用。
在这里插入图片描述
此时可以将文件置于py目录下,使用import方法调用,但是需要注意的是此时只需要import不带后缀的模块名即可:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
修改Py代码,改变项目目录:

- aa.py
- ab
	- bb.py
	- ___init__.py

此时使用import依然可以正常运行!
在这里插入图片描述
继续修改Py代码,改变项目目录:

aabb
- aa.py
	- aa.py
	-ab
		- bb.py
		- ___init__.py

此时需要通过appendPath方法,将文件置于模块路径。使用import依然可以正常运行!
在这里插入图片描述
综上,可以大概了解aardio链接Python代码的方法。具体可以参考官方示例!

2.4.3链接Python项目完整代码

在这里插入图片描述
说明:import中需导入自己依赖的第三方包。Aardio中Python 3.7 以下版本不支持 pip 工具。
可通过import的返回值,判断是否调用成功。

2.5 打包发布

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.打包发布成功

最终目录结构

- App.exe
- In
- Out

最终界面

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python 中,你可以使用 `setuptools` 和 `distutils` 两种工具来打包多文件项目。这里以 `setuptools` 为例进行说明。 `setuptools` 是一个 Python 包管理工具,可以帮助你将 Python 项目打包成可分发的源码或二进制包。以下是使用 `setuptools` 打包多文件项目的步骤: 1. 确保你的项目目录结构正确。一个典型的 Python 项目目录结构如下: ``` myproject/ setup.py README.md LICENSE myproject/ __init__.py module1.py module2.py subpackage/ __init__.py module3.py module4.py ``` 其中,`setup.py` 是打包脚本,`myproject` 是包的名称,`__init__.py` 是一个空文件,用于标识该目录Python 包。 2. 在 `setup.py` 中编写打包脚本。以下是一个简单的示例: ```python from setuptools import setup, find_packages setup( name="myproject", version="0.1", description="My project description", packages=find_packages(), install_requires=[ "numpy", "pandas", "matplotlib" ], entry_points={ "console_scripts": [ "myproject=myproject.cli:main" ] } ) ``` 在这个脚本中,我们使用 `setuptools` 提供的 `setup()` 函数来配置打包信息。其中,`name` 是包的名称,`version` 是包的版本号,`description` 是包的描述,`packages` 是包含所有 Python 模块的列表,`install_requires` 是依赖项列表,`entry_points` 是命令行入口点的字典。在这个例子中,我们定义了一个名为 `myproject` 的命令行工具。 3. 执行打包命令。在项目目录下,执行以下命令: ``` python setup.py sdist bdist_wheel ``` 这个命令会生成源码包(`.tar.gz` 或 `.zip`)和二进制包(`.whl`)。 4. 分发你的包。你可以将生成的包上传到 PyPI 或自己的私有仓库中,供其他人使用。如果你打算上传到 PyPI,可以使用 `twine` 工具进行上传: ``` pip install twine twine upload dist/* ``` 这个命令会将 `dist` 目录下的所有包上传到 PyPI。 以上就是使用 `setuptools` 打包多文件项目的基本步骤。需要注意的是,打包时应该排除不必要的文件,例如测试文件和文档文件。你可以在 `setup.py` 中使用 `exclude` 参数来排除这些文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KmBase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值