我在Python 2.7.9中制作了一些脚本文件,并另外使用了第三方库,pyautoit 0.4。在py2exe单个EXE文件中使用第三方库
我想提出我的脚本作为一个单一的EXE(要在单个文件中运行,因此它们不需要安装文件),并通过使用py2exe,尝试这样:
# -*- coding: utf-8 -*-
from setuptools import setup
import py2exe, sys, os
setup(name = "My Test Application",
description = "My Test Application for Windows",
version = "1.01",
console = [{"script": "myprogram.py"}],
#data_files - make directory at ./dist, not in exe file
#data_files=[("./autoit/lib", ["AutoItX3.dll"])],
options = {
"py2exe": {
"includes": ["win32api",,
"autoit",
"os" ,
"time"],
"bundle_files": 1,
}
},
zipfile = None,
)
它已成功打包到单个EXE文件中,但EXE中没有AutoItX3.dll文件。
我发现,py2exe不能包括在它的EXE文件.dll文件,所以在我的主脚本我试图手动导入AutoItX3.dll:
# -*- coding: utf-8 -*-
import os, sys
from ctypes import cdll
autoitdll = cdll.LoadLibrary('./modules/AutoItX3.dll')
autoitdll.run("wordpad.exe")
,它不能被加载。 (错误消息:
Traceback (most recent call last): File "C:/Users/win7x64kor/PycharmProjects/treesearch_27/myprogram.py", line 26, in autoitdll.run("wordpad.exe")
File "C:\Python27\lib\ctypes__init__.py", line 378, in getattr func = self.getitem(name)
File "C:\Python27\lib\ctypes__init__.py", line 383, in getitem func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'run' not found
是否有装载库,包括.dll文件的任何方法
或者更简单的方法只包括“pyautoit”库功能通过在py2exe增加一些选项,如“选项>包括? :?“AutoIt的”“一个EXE文件
感谢您的回答。我实际上使用Inno Setup作为文件包装器,所以如果我使用这种方法将会有2次安装。所以我应该改变我的方法来解决这个问题。 – 2015-04-27 06:49:39