我有一个python脚本在我的电脑上工作正常(安装了Python 2.7 32位)。它有以下导入:
import mechanize from bs4 import BeautifulSoup from Tkinter import * import json import webbrowser
我想将此分发给其他人,因此我发现我们可以使用py2exe创建exe文件。我写了一个这样的剧本:
from distutils.core import setup import py2exe setup(console=['notification.py'], options = {'py2exe' : { 'packages' : ['bs4', 'mechanize','Tkinter', 'json', 'webbrowser'] }})
这在我的计算机上工作正常但是当我在Windows XP上运行时,我收到此错误 -
Traceback (most recent call last): File "notification.py", line 3, in File "Tkinter.pyc", line 38, in File "FixTk.pyc", line 65, in File "_tkinter.pyc", line 12, in File "_tkinter.pyc", line 10, in __load ImportError: DLL load failed: %1 is not a valid Win32 application.
我尝试搜索其他线程但发现没有相同的问题。所以请帮我解决这个问题。
答案 0 :(得分:1)
也许Tinkiter是一个64位版本的GUI,而你运行它的Windows XP版本是32位。
检查出来并告诉我们是否属实。
原因我认为这是一行:
ImportError:DLL加载失败:%1不是有效的Win32应用程序。
结合Tinkiter是64位的事实。
Python可以是32位。适用于两种操作系统,32位和64位操作系统。 但是Tinkiter是一个GUI,与语言不同。 因此,将64位附加组件包含在32位应用程序中......可能会造成一些麻烦。 :)
建议: 您可以尽可能使应用程序在控制台界面中工作。 然后,您可以使用另一个可以32位运行的GUI。
例如,您可以获得32位版本的THIS
编辑:添加了建议。
答案 1 :(得分:1)
好吧,我在我的机器上安装了Python 32位和64位两个版本。当我把它变成一个独立的时候,可能有些dll是从错误的库中复制出来的。所以我完全卸载了两个版本,然后安装了32位,它工作正常。