如何使用 python 代码创建 Linux 可执行文件
How to create a Linux executable file using python code
举个例子,我使用 Tkinter 创建了 welcomeGUI.py 文件,它有一个简单的 GUI,如下所示。
from Tkinter import *
import ttk
class Application():
def __init__(self, master):
frame = Create_widgets(master)
frame.pack()
class Create_widgets(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.toplabel = Label(master, text="Welcome!", font=('cambria', 20, 'bold'),
fg="white", bg="Midnight Blue")
self.toplabel.pack(fill=X, ipady=100)
statuslabel = Label(master, bg="Midnight Blue")
statuslabel.pack(fill=X)
self.midlabel = Label(master, text="Device ready,connect a flash drive to continue...",
font=('Ubuntu-L', 12), fg= "white", bg="Midnight Blue", anchor="n")
self.midlabel.pack(fill=X, ipady=5)
bottomlabel = Label(master, bg="Gainsboro")
bottomlabel.pack(side=BOTTOM, fill=X)
button1 = ttk.Button(bottomlabel, text="Close")
button1.pack(side=BOTTOM)
#**** Main ****
root = Tk()
root.title("Projector Plus")
root.configure(bg="Midnight Blue")
root.minsize(550, 550)
pro = Application(root)
root.mainloop()
然后我需要创建这个可以安装在Ubuntu上的文件(要在Ubuntu上创建一个可执行文件)。在 Windows 中,这可以通过 .exe 文件轻松完成(使用 cx-Freeze)。我真的不知道 Ubuntu 和 shell 文件的文件系统。
请帮助我了解一下这个问题。我不知道如何进入这个问题。
基本上,要使文件在 Unix 系统中可执行,您只需要做一件事:允许它执行(非常令人惊讶;))。为此,您必须使用 chmod
命令,如下所示:chmod +x youfile.py
。 +x
添加执行权
现在,您的系统将允许您执行脚本,但目前它只是一个简单的文本文件...Ubuntu 不知道他必须使用 python
命令来运行 它,所以你会破坏行为举止。为了解决这个问题,我们使用 sha-bang 行(有关更多信息,请参阅 wikipedia page):在脚本的第一行,您必须写 #! program_to_use
,在您的情况下是 python.通常,我们利用 env
变量,并使用 #! /usr/bin/env python
,但您也可以自己选择您想要的 python 版本,执行 #! /usr/bin/pythonX.X
其中 X.X 是 python.
的版本
1 - 在您的文件顶部添加这一行:
#!/bin/env python
(这可能因您的 ENV
变量而异)
2 - 通过以下方式使您的文件可执行:
a - 在 Unix 系统中,运行 以下命令:
`chmod +x myfile.py`
b - 在 Windows 系统中,您可以使用实用程序 py2exe
http://www.py2exe.org/
有关此内容的更多信息,请访问:
https://docs.python.org/2/faq/windows.html#how-do-i-make-an-executable-from-a-python-script
举个例子,我使用 Tkinter 创建了 welcomeGUI.py 文件,它有一个简单的 GUI,如下所示。
from Tkinter import *
import ttk
class Application():
def __init__(self, master):
frame = Create_widgets(master)
frame.pack()
class Create_widgets(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.toplabel = Label(master, text="Welcome!", font=('cambria', 20, 'bold'),
fg="white", bg="Midnight Blue")
self.toplabel.pack(fill=X, ipady=100)
statuslabel = Label(master, bg="Midnight Blue")
statuslabel.pack(fill=X)
self.midlabel = Label(master, text="Device ready,connect a flash drive to continue...",
font=('Ubuntu-L', 12), fg= "white", bg="Midnight Blue", anchor="n")
self.midlabel.pack(fill=X, ipady=5)
bottomlabel = Label(master, bg="Gainsboro")
bottomlabel.pack(side=BOTTOM, fill=X)
button1 = ttk.Button(bottomlabel, text="Close")
button1.pack(side=BOTTOM)
#**** Main ****
root = Tk()
root.title("Projector Plus")
root.configure(bg="Midnight Blue")
root.minsize(550, 550)
pro = Application(root)
root.mainloop()
然后我需要创建这个可以安装在Ubuntu上的文件(要在Ubuntu上创建一个可执行文件)。在 Windows 中,这可以通过 .exe 文件轻松完成(使用 cx-Freeze)。我真的不知道 Ubuntu 和 shell 文件的文件系统。
请帮助我了解一下这个问题。我不知道如何进入这个问题。
基本上,要使文件在 Unix 系统中可执行,您只需要做一件事:允许它执行(非常令人惊讶;))。为此,您必须使用 chmod
命令,如下所示:chmod +x youfile.py
。 +x
添加执行权
现在,您的系统将允许您执行脚本,但目前它只是一个简单的文本文件...Ubuntu 不知道他必须使用 python
命令来运行 它,所以你会破坏行为举止。为了解决这个问题,我们使用 sha-bang 行(有关更多信息,请参阅 wikipedia page):在脚本的第一行,您必须写 #! program_to_use
,在您的情况下是 python.通常,我们利用 env
变量,并使用 #! /usr/bin/env python
,但您也可以自己选择您想要的 python 版本,执行 #! /usr/bin/pythonX.X
其中 X.X 是 python.
1 - 在您的文件顶部添加这一行:
#!/bin/env python
(这可能因您的 ENV
变量而异)
2 - 通过以下方式使您的文件可执行:
a - 在 Unix 系统中,运行 以下命令:
`chmod +x myfile.py`
b - 在 Windows 系统中,您可以使用实用程序 py2exe http://www.py2exe.org/
有关此内容的更多信息,请访问:
https://docs.python.org/2/faq/windows.html#how-do-i-make-an-executable-from-a-python-script