Pop的构建系统,用于构建python项目
pop-build的Python项目详细描述
简介
Pop Build是Pop项目的单一二进制构建器。当它写在 支持pop项目的意图它可以与任何python项目一起使用。在
入门
Pop-Build背后的主要思想是将python项目作为一个单独的项目来构建 容易冻结的二进制文件。因此,使用pop构建只需要几个步骤。在
因此,我们可以从一个现有的python应用程序开始,这个快速启动将假定 你的python项目有一个标准的设置.py和要求.txt。在
大多数项目唯一需要的是一个运行.py。在
在运行.py
因为Pop Build只创建一个二进制文件,所以它需要一个入口点。这个条目 点定义在文件运行.py。这只是一个简单的python脚本 用于启动应用程序。的内容运行.py通常是相同的 setuptools入口点中使用的代码,或中使用的启动脚本 地区。没有什么特别的运行.py,pop build只需要 入口点是干净的python。在
注意
Setuptools创建一个启动脚本,动态地发现 应用程序启动。当应用程序启动时,这是有意义的 在有许多python库和应用程序的环境中。但是pop build创造了一个 无法满足setuptools需求的独立python环境。在
典型的运行.py将如下所示:
importmyappdefmain():myapp.start()main()
只是一些好的老Python!如果您正在构建一个pop项目,那么pop seed将 创建运行.py为你。在
运行Pop Build
没错!你所需要的一切运行.py您的python项目可能已经有了! Pop构建使用设置.py以及要求.txt用于生成所用环境的文件。在
因此,假设您定义了一个标准的python项目,您只需进行cd即可 目录并运行pop build,在本例中,我们假设应用程序调用 食品:
^{pr2}$这将启动进程,生成的二进制文件将被放入dist/foo
既然二进制文件可用,就可以直接调用它了。在
怎么了?
Pop Build从您使用的python版本开始。这条Python 是将嵌入到二进制文件中的python。接下来,它将为您的应用程序创建一个venv。 有了venv,Pop Build就会填充它。venv中填充了所有 定义为主应用程序的需求,包括应用程序本身。在
既然venv已经设置好了,我们告诉PyInstaller从创建一个二进制文件运行.py。 但是PyInstaller所要做的就是从 这个运行.py. 这样做是为了构建一个小的二进制文件,并且只包含最需要的代码。 但对于许多应用程序来说,情况并非如此,典型的情况是延迟导入 应用程序假设有一个更大的python环境可用。这也是典型的 应用程序需要这些额外的文件,通常通过设置.py. 在
Pop-Build将venv绑定到 PyInstaller。这意味着您有一个强有力的保证,即完整、需要的环境 可用。这确实可以生成一个更大的二进制文件,但它允许更容易和可靠的构建。 另外,二进制文件通常不会大很多。在
使用Build插件
许多python项目需要C库。那是怎么回事 动态库可以添加到最后的二进制文件中吗?PopBuild对此有一个答案。在
当运行pop build时,我们可以使用一个配置文件。此文件允许任何选项 它将传递给要定义的cli,但也要定义 外部生成。在
一个Pop构建配置,作为一个例子,它添加了lib钠库,如下所示:
build:libsodium:make:-wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz-tar xvf LATEST.tar.gz-cd libsodium-stable && ./configure && makesrc:libsodium-stable/src/libsodium/.libs/libsodium.sodest:lib/
这个例子展示了如何定义一个要下载和构建的库,然后src 它是相对于构建的根目录的,而dest则是相对于根目录的 在小酒馆里。在
src可以是一个目录或一个文件列表,dest只是一个要存储的目录 文件。在
- 项目
标签: