我使用Python 3.4.3,我能够使用py2exe构建tkinter程序,它启动没有问题,除了selenium部分之外所有其他功能都正常工作 . 当我尝试在程序中调用该函数时,我收到以下错误 .
我试图移动.json文件 . webdriver.xpi似乎工作,但我总是在webdriver_prefs.json文件上得到一个错误 . 当我尝试将文件"webdriver_prefs.json"移动到library.zip时,我得到一个损坏错误,我不确定该窗口是问题还是文件 . 当我在IDLE中运行程序时,它可以正常工作而没有错误 .
当包装在EXE中时
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "SearchTool.pyw", line 121, in graniteWebSearch
File "C:\Python34\lib\site-packages\selenium-2.47.1- py3.4.egg\selenium\webdriver\firefox\webdriver.py", line 47, in __init__
self.profile = FirefoxProfile()
File "C:\Python34\lib\site-packages\selenium-2.47.1- py3.4.egg\selenium\webdriver\firefox\firefox_profile.py", line 63, in __init__
WEBDRIVER_PREFERENCES)) as default_prefs:
FileNotFoundError: [Errno 2] No such file or directory: 'H:\\Python\\dist\\SearchTool.exe\\selenium\\webdriver\\firefox\\webdriver_prefs.json'
当未包装在EXE中时
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "SearchTool.pyw", line 121, in graniteWebSearch
File "C:\Python34\lib\site-packages\selenium-2.47.1- py3.4.egg\selenium\webdriver\firefox\webdriver.py", line 47, in __init__
self.profile = FirefoxProfile()
File "C:\Python34\lib\site-packages\selenium-2.47.1- py3.4.egg\selenium\webdriver\firefox\firefox_profile.py", line 63, in __init__
WEBDRIVER_PREFERENCES)) as default_prefs:
FileNotFoundError: [Errno 2] No such file or directory: 'H:\\Python\\dist\\library.zip\\selenium\\webdriver\\firefox\\webdriver_prefs.json'
我的设置文件
from distutils.core import setup
import py2exe
data_files = [("selenium/webdriver/firefox", ["webdriver_prefs.json", "webdriver.xpi"])]
manifest = """
recursive-include *.json
"""
setup(
name = 'SearchTool',
version = 1,
py_modules = ['selenium', 'tkinter'],
windows = ["SearchTool.pyw"],
author = 'That guy',
author_email = 'someemail',
url = 'NONE',
description = 'Basic do all program.',
data_files=data_files,
zipfile=None,
options={
'py2exe':
{
'skip_archive': False,
'bundle_files': 3,
}
}
)