Отсутствует исполняемый модуль pyInstaller _struct в Ubuntu 12.04 Precise

Я хотел бы упаковать свой проект python в исполняемый файл UNIX. Для этого я пробовал py2exe, cxfreeze и pyInstaller, но ничего не получилось. Надеюсь, вы можете помочь мне с pyinstaller. Итак, вот оно:

Я загрузил zip-файл pyinstaller-2.0 с http://www.pyinstaller.org/ и разархивировал его. .

В папке я запускаю python pyinstaller.py ../helloworld.py (вывод указан в конце).

Затем я пытаюсь выполнить файл: ./helloworld/dist/helloworld/helloworld, который дает мне вывод:

mod is NULL - structTraceback (most recent call last):
  File "/usr/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
mod is NULL - archiveTraceback (most recent call last):
  File "/home/jelle/Downloads/pyinstaller-1.5.1/archive.py", line 42, in <module>
    import struct
ImportError: No module named struct
Traceback (most recent call last):
  File "<string>", line 25, in <module>
ImportError: No module named archive

Я использую Ubuntu 12.04 с Python 2.7.3. Мой PYTHONPATH включает /usr/lib/python2.7. Похоже, проблема в отсутствующем модуле _struct, но я понятия не имею, где его найти. Я пробовал pyinstaller 1.5.1 и версию для разработки, здесь они не работают.

Пожалуйста помоги!

Вывод python pyinstaller.py ../helloworld.py:

 7 INFO: wrote /home/jelle/Downloads/pyinstaller-2.0/helloworld/helloworld.spec
    27 INFO: UPX is not available.
    583 INFO: checking Analysis
    583 INFO: building Analysis because out00-Analysis.toc non existent
    583 INFO: running Analysis out00-Analysis.toc
    702 INFO: Analyzing /home/jelle/Downloads/pyinstaller-2.0/support/_pyi_bootstrap.py
    1570 INFO: Analyzing /home/jelle/Downloads/pyinstaller-2.0/PyInstaller/loader/archive.py
    1637 INFO: Analyzing /home/jelle/Downloads/pyinstaller-2.0/PyInstaller/loader/carchive.py
    1701 INFO: Analyzing /home/jelle/Downloads/pyinstaller-2.0/PyInstaller/loader/iu.py
    1720 INFO: Analyzing ../helloworld.py
    1721 INFO: Hidden import 'encodings' has been found otherwise
    1721 INFO: Looking for run-time hooks
    1721 INFO: Analyzing rthook /home/jelle/Downloads/pyinstaller-2.0/support/rthooks/pyi_rth_encodings.py
    2197 INFO: Looking for Python library libpython2.7.so
    objdump: section '.dynamic' mentioned in a -j option, but not found in any input file
    2308 INFO: Warnings written to /home/jelle/Downloads/pyinstaller-2.0/helloworld/build/pyi.linux2/helloworld/warnhelloworld.txt
    2311 INFO: checking PYZ
    2311 INFO: rebuilding out00-PYZ.toc because out00-PYZ.pyz is missing
    2312 INFO: building PYZ out00-PYZ.toc
    2706 INFO: checking PKG
    2706 INFO: rebuilding out00-PKG.toc because out00-PKG.pkg is missing
    2706 INFO: building PKG out00-PKG.pkg
    2711 INFO: checking EXE
    2712 INFO: rebuilding out00-EXE.toc because helloworld missing
    2712 INFO: building EXE from out00-EXE.toc
    2772 INFO: Appending archive to EXE /home/jelle/Downloads/pyinstaller-2.0/helloworld/build/pyi.linux2/helloworld/helloworld
    2773 INFO: checking COLLECT
    2773 INFO: building COLLECT out00-COLLECT.toc

Кстати: мой helloworld.py просто содержит оператор print «hello world». Я попытался поставить #!/usr/bin/python2.7 вверху.


person Dining Philosopher    schedule 18.12.2012    source источник


Ответы (1)


Проверьте значение системной переменной LD_LIBRARY_PATH.

echo $LD_LIBRARY_PATH

Это может указывать на неправильную библиотеку Python libpython2.7.so.

В моем случае я мог бы исправить это, сбросив его:

export LD_LIBRARY_PATH=
person Jan DB    schedule 07.09.2015