如何在PYTHON中调用windows的可执行文件

如何在PYTHON中调用windows的可执行文件,第1张

Python是一种简单而强大的编程语言,适用于编写脚本,甚至于应用程序的开发。Python可用的各种GUI包使得利用Python编写全功能的应用变为可能。这很好,但有没有想过将编写的Python脚本转化为可执行文件。这似乎是一个很赞的主意,有许多原因。可以在没有Python解释器的情况下重新部署应用。终端用户不需要在他的机器上安装Python。可以将你的应用闭源(很不幸)等等……这篇文章可以告诉如何从Python脚本生成win32可执行文件。

Python is a simple and powerful language for scripting and even application development. Various GUI packages available for Python makes it suitable for developing full fledged applications in python. Ok that is fine, but ever thought of creating an executable file from the python script you wrote? This seems to be a nice idea, there are many reasons why! You can redistribute your application without python. The end user needn't to install python on his machine. You can make your application closed source (unfortunate) etc... Read on this article to find how you can create win32 executables from your Python script.

This tutorial will give step by step instruction on how to create Win32 executable from Python script. Make sure that the following are installed on your system.

这篇教程将会一步一步的介绍如何从Python脚本创建Win32可执行文件。请确保你的系统里已经安装了下面的程序。

命令行程序

下面的示例代码会在命令行里打印一行标题,以及从1到10的数字。

test.py

print "Python script to exe test program"

count = 0

while count <10:

print "count = " + str(count) +"\n"

count = count + 1

把这段代码保存在test.py(或者别的以.py为后缀的)文件中。用Python解释器首先测试并成功运行这段代码。要完成这一步,只需要在命令行里输入“python test.py”。你应当在命令行里看到下面的输出。

我们的Python脚本已经准备好了。现在我们还需要创建一个setup脚本。所谓的setup脚本其实就是另外一个Python脚本,在这个脚本里我们导入py2exe包,并从distutils包里导入setup脚本。此外,我们在这个文件里指定哪一个脚本作为可执行程序的入口点。创建一个新文件命名为setup.py并把下面的代码粘贴进去。

setup.py

from distutils.core import setup

import py2exe

setup(console=['test.py'])

这段代码简单明了。在setup.py中导入setup和py2exe然后以入口点脚本的名字为参数调用setup()函数。现在可以运行这个脚本并创建可执行文件了。创建可执行文件时,在命令提示符里运行“python setup.py py2exe”。你可以在命令行里看到许多输出。最后你可以看到下图所示的输出内容。

构建可执行文件的过程到此结束。现在你应该可以在\dist子目录下看到test.exe文件。将dist子目录移动到合适的位置然后运行test.exe,你可以看到下面的命令行输出。

GUI应用程序

我们已经成功将Python脚本转化为一个可执行命令行应用程序。下面我们来试试从Python脚本创建一个GUI可执行程序吧。使用Python创建GUI时,我们会用到Tkinter(Tk Interface)作为GUI工具包。从一个Tkinter-Python GUI脚本创建可执行文件非常直观。只要遵照我们在生成命令行程序时的步骤即可创建一个GUI可执行程序。

创建一个新文件,将下面的代码粘贴进去,保存并命名为“gui.py”。

gui.py

from Tkinter import *

frmMain = Tk()

label = Label(frmMain, text="Welcome to py2exe!")

label.pack()

frmMain.mainloop()

这个代码也很直观,导入Tkinter工具包,创建主窗体,创建一个标签并将其调整为内容的大小并进入程序的主循环。试着在命令行里输入“python gui.py”来运行这段脚本。如果一切顺利,你应该看到下面的窗口。

目前为止一切顺利。现在让我们看看我们怎样从脚本构建windows可执行程序。创建一个新文件命名为setup.py并将下面的代码粘贴进去。

setup.py

from distutils.core import setup

import py2exe

setup(console=['gui.py'])

构建可执行文件时,在命令提示符里运行“python setup.py py2exe”。一旦构建过程完成,移动到\dist子目录下并通过在命令行里键入“gui.exe”来运行这个可执行文件。现在应该看到与前面用Python脚本创建的一样的窗体。

首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。

打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。

脚本第一行一定要写上 #!usr/bin/python

表示该脚本文件是可执行python脚本

如果您的python目录不在usr/bin目录下,则替换成当前python执行程序的目录

编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

在CMD命令行中,输入 “python” + “空格”,即 ”python “;

将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可

楼主怎么又来问这个问题?不是已经问过一遍了吗?这么久还没有搞定?

svcdorun运行结束就表示系统服务“停止”,怎么会重新运行?

上面的程序在开始添加两行代码:

import

time

timeout

=

10

#此处是延时时间,单位秒

改写部分代码:

def

__init__(self,

args):

win32serviceutil.serviceframework.__init__(self,

args)

self.running

=

true

def

svcdorun(self):

while

self.running:

#调用你的程序代码或者函数,以下的部分是计时代码

i

=

0

while

self.running

and

(i<timeout):

time.sleep(1)

i

+=

1

def

svcstop(self):

self.running

=

false

这三个函数完全替代原有的代码

代码

import

win32event

可以去除

计时代码之所以不直接写

time.sleep(timeout),主要原因是当timeout比较长时,会引起停止服务时失败,windows系统在停止服务时会有一定的等待时间,但时间不长,现在的计时代码是一秒钟检查一次是否停止,肯定不会带来问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11449471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存