2016-07-07 3 views
0

Я пытаюсь создать однофайльный исполняемый файл из файла python с помощью pyinstaller. Исполняемый терпит неудачу при попытке import cups и выдает следующую ошибку:Ошибка изображения не найдена при связывании pycups с pyinstaller

Failed to execute script ImportPyCups 
Traceback (most recent call last): 
File "ImportPyCups.py", line 1, in <module> 
    import cups 
File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module 
    exec(bytecode, module.__dict__) 
File "build/bdist.macosx-10.8-intel/egg/cups.py", line 7, in <module> 
File "build/bdist.macosx-10.8-intel/egg/cups.py", line 6, in __bootstrap__ 
ImportError: dlopen(/var/folders/jp/8v0hvshd585dw9v_7bnlxsqh0000gn/T/_MEILQoRVs/cups.so, 2): image not found 

Вот файл питона (да, только один оператор импорта):

import cups 

Вот команды, я бегу, чтобы включить питон файл в один исполняемый файл:

$ /usr/local/bin/pyi-makespec --onefile --console ImportPyCups.py 
$ pyinstaller ImportPyCups.spec 

Я затем запустить:

$ dist/ImportPyCups 

Здесь я получаю сообщение об ошибке, которое я вставил выше. Если я просто запустить файл питона из терминала, как показано ниже, никаких ошибок не возникает:

$ python ImportPyCups.py 

среда это работает в это (Mac OS X 10.8.5):

PyInstaller: 3.2 
Python: 2.7.2 
Platform: Darwin-12.5.0-x86_64-i386-64bit 

Установленные pycups является :

Metadata-Version: 1.0 
Name: pycups 
Version: 1.9.68 
Summary: Python bindings for libcups 
Home-page: http://cyberelk.net/tim/software/pycups/ 
Author: Tim Waugh 
Author-email: [email protected] 
License: GPLv2+ 
Location: /Library/Python/2.7/site-packages/pycups-1.9.68-py2.7-macosx-10.8-intel.egg 
Requires: 
Classifiers: 
    Intended Audience :: Developers 
    Topic :: Software Development :: Libraries :: Python Modules 
    License :: OSI Approved :: GNU General Public License (GPL) 
    Development Status :: 5 - Production/Stable 
    Operating System :: Unix 
    Programming Language :: C 
    Programming Language :: Python 
    Programming Language :: Python :: 2 
    Programming Language :: Python :: 3 

Из сообщения об ошибке кажется, что чего-то не хватает, но я не смог выяснить, что.

ответ

0

Я наконец-то нашел ответ здесь: https://github.com/pyinstaller/pyinstaller/issues/1728

Если вы используете easy_install установить PyCups, вы получите файл .egg. Pyinstaller не ищет расширения C внутри zipped .egg-файлов и никогда не будет. Решение прост: удалите файл .egg и установите PyCups с помощью pip.

Это не относится к PyCups, а к easy_install.

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

  • Нет связанных вопросов^_^