如何为我的 pygtk 应用程序制作 deb pkg?

k99*_*k99 4 deb application-development

我编写了一个 pygtk 应用程序并想为它制作一个 deb pkg。

$ tree WebPad/
WebPad/
|-- jspad
|   |-- __init__.py
|   |-- main.py
|   |-- t.py
|-- pixmaps
|   |-- c.png
|   |-- run.png
|   `-- webpad.png
|-- README
|-- run.py
`-- templates
    `-- webpad.tpl

3 directories, 19 files
Run Code Online (Sandbox Code Playgroud)

我需要更改目录布局吗?

Fli*_*imm 5

首先,您需要在项目的根目录中setup.py使用distutils创建一个文件。它应包含类似于以下内容的文本:

#!/usr/bin/env python

from distutils.core import setup
from glob import glob

setup(name = "WebPad",
    version="0.1",
    author="znetor",
    packages=["jspad"],
    data_files=[('share/webpad/pixmaps', glob("pixmaps/*"), ('share/webpad/templates', ['templates/webpad.tpl'])],
    scripts=['run.py'])
Run Code Online (Sandbox Code Playgroud)

您还应该创建一个 MANIFEST.in 文件:

recursive-include pixmaps *
recursive-include templates *
Run Code Online (Sandbox Code Playgroud)

你已经这样做了,你可以在终端上运行各种命令来分发你的项目:

chmod +x setup.py
sudo ./setup.py install # installs your project to /usr/local
./setup.py sdist # creates a source distribution in dist/
Run Code Online (Sandbox Code Playgroud)

最后一个命令是我们感兴趣的命令。一旦您获得了带有 distutils setup.py 脚本的源代码发行版,您就可以遵循Python 打包指南 for Ubuntu。基本上,它涉及debian/在项目的根目录中创建一个包含各种信息的目录并运行debuild.

不久前我写了一个关于如何做到这一点的教程,其中一些不是最佳实践,但它会帮助你理解一些概念。