如何从Python脚本在Ubuntu中创建可执行文件和启动器?
我写了一个简单的Python程序。现在我想把这个脚本变成一个可执行的程序(如果可以的话,希望源代码是隐藏的),然后当我双击它时,程序能自动安装到Ubuntu系统中(我想是在/usr/lib或/usr/bin目录下),并且在应用程序的游戏菜单里创建一个新的启动器。
我该怎么做呢?
3 个回答
从pyinstaller.org网站上使用pyinstaller
http://bytes.com/topic/python/insights/579554-simple-guide-using-pyinstaller
输入命令:pyinstaller helloworld.py
这会创建两个文件夹,分别是
bin和dist
你可以在dist文件夹里运行你的程序,像这样:
./helloworld
我不能帮你隐藏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构建的(也就是用 configure
、make
和 make 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中运行)之后,你的应用程序就会有一个启动器和一个漂亮的图标了。
闭源?没什么大不了的。其实你可以编译Python代码,或者直接使用一种叫做混淆器的工具。不过我还是建议你把代码开源,这样更好;-)
你可以双击打开的文件是 .desktop
文件,想看示例的话,可以用这个命令:find /usr | grep desktop
。