2013-06-14 3 views
0

У меня возникла проблема при замораживании моего простого сценария Python 2.7 в автономном приложении.Python 2.7 Spynner cx_Freeze

Я использую Spynner без каких-либо проблем на всех, однако, когда я пытаюсь заморозить мой супер простой скрипт:

from spynner import * 

я получаю эти следующие ошибки при открытии «test.exe» в CMD:

C:\Python27\Scripts\MY\build\exe.win32-2.7>test.exe 
Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", li 
    exec code in m.__dict__ 
    File "test.py", line 1, in <module> 
    File "C:\Python27\lib\site-packages\spynner-2.4-py2.7.egg\spynner\__init_ 
    from browser import * 
    File "C:\Python27\lib\site-packages\spynner-2.4-py2.7.egg\spynner\browser 
    class Browser(object): 
    File "C:\Python27\lib\site-packages\spynner-2.4-py2.7.egg\spynner\browser 
    pkg_resources.resource_filename('spynner', 'javascript'), 
    File "build/bdist.linux-i686/egg/pkg_resources.py", line 882, in resource 
    File "build/bdist.linux-i686/egg/pkg_resources.py", line 1344, in get_res 
NotImplementedError: resource_filename() only supported for .egg, not .zip 

Заранее благодарим за любые идеи.

+0

Вот также скриншот, описывающий проблему, о которой я упомянул выше. http://img96.imageshack.us/img96/9018/vfrs.png –

+0

spynner использует способ хранения файлов данных, который не работает, когда он заморожен в zip-файл. Вам придется исправить его, чтобы искать файлы javascript где-то, что вы укажете. –

ответ

0

У меня такое же проблема, и я решил, разделить мое решение,
меняет spynner исходного кода модуля линии "browser.py" 77

class Browser(object): 
    """ 
    Stateful programmatic web browser class based upon QtWebKit. 
    """ 
    errorCode = None 
    errorMessage = None 
    if hasattr(sys, "frozen"): 
     Handle_Frozen_Location = os.path.join(os.path.dirname(sys.executable), 'javascript') 
    else: 
     Handle_Frozen_Location = pkg_resources.resource_filename('spynner', 'javascript') 
    _javascript_directories = [Handle_Frozen_Location, ] 
    _jquery = 'jquery-1.5.2.js' 
    _jquery_simulate = 'jquery.simulate.js' 
#.....# all the same 

чем копии Javascript папки из C: \ Python27 \ Lib \ site-packages \ spynner-2.15-py2.7.egg \ spynner
(выше - путь к окну ...)
в вашу папку для сборки, например c: \ где-то \ build \ exe.win32- 2.7
Надежда может решить вашу проблему ...

Смежные вопросы