如何从Python脚本在Ubuntu中创建可执行文件和启动器?

2 投票
3 回答
8275 浏览
提问于 2025-04-16 05:40

我写了一个简单的Python程序。现在我想把这个脚本变成一个可执行的程序(如果可以的话,希望源代码是隐藏的),然后当我双击它时,程序能自动安装到Ubuntu系统中(我想是在/usr/lib或/usr/bin目录下),并且在应用程序的游戏菜单里创建一个新的启动器。

我该怎么做呢?

3 个回答

0

从pyinstaller.org网站上使用pyinstaller

http://bytes.com/topic/python/insights/579554-simple-guide-using-pyinstaller

输入命令:pyinstaller helloworld.py

这会创建两个文件夹,分别是

bin和dist

你可以在dist文件夹里运行你的程序,像这样:

./helloworld

2

我不能帮你隐藏Python源代码,不过,应用程序启动器是一个扩展名为 .desktop 的文件,属于 桌面条目。你的安装程序会把这个文件放到系统的应用程序文件夹里,比如 /usr/share//usr/local/share

如果你把应用程序的图标放到一个合适的位置(比如 /usr/local/share/icons/hicolor/<size>/apps/<你的应用程序名称>.png),并把可执行文件放到一个在PATH中的位置(通常是 /usr/bin/usr/local/bin),那么你的桌面条目文件就不需要写可执行文件或图标的绝对路径了。

举个例子,假设有一个叫 "myapp.py" 的Python应用程序。它的 .desktop 文件长这样:

[Desktop Entry]
Name=My Application
Type=Application
Exec=myapp.py
Icon=myapp

然后假设这个应用程序是用autotools构建的(也就是用 configuremakemake install),并且使用的是“默认”构建选项,其中 prefix=/usr/local/share。接下来会安装以下文件:

/usr/local/share/applications/myapp.desktop
/usr/local/share/icons/hicolor/16x16/apps/myapp.png
# same for sizes 22x22, 24x24, 32x32, 48x48, 64x64
# it's also a good idea to include a "scalable" svg icon
/usr/local/bin/myapp  
# ^ this is your python "executable"

在以root身份运行 update-desktop-database(或者从你的Makefile中运行)之后,你的应用程序就会有一个启动器和一个漂亮的图标了。

3

闭源?没什么大不了的。其实你可以编译Python代码,或者直接使用一种叫做混淆器的工具。不过我还是建议你把代码开源,这样更好;-)

你可以双击打开的文件是 .desktop 文件,想看示例的话,可以用这个命令:find /usr | grep desktop

撰写回答