Я пытаюсь заморозить двоичный файл с помощью PyInstaller, который включает код ZMQ. При тестировании приложения все отлично работает с интерпретатором Python, но окончательный двоичный файл вообще не работает.Pyinstaller замерзает недействительный двоичный файл, когда включает ZMQ
Примечание: Другой код используется здесь для иллюстрации и упрощать ошибку:
try:
import zmq
zmq.Context()
except Exception, e:
print str(e)
print 'end'
Python версии 2.7.6, операционная система CentOS 6.7, и я работаю в виртуальной среде, которая включает в себя следующие пакеты:
(Compiler)[[email protected] test]$ pip list
backports.ssl-match-hostname (3.4.0.2)
certifi (2015.9.6.2)
cffi (1.2.1)
cryptography (1.0.1)
Cython (0.23.1)
distribute (0.7.3)
enum34 (1.0.4)
futures (3.0.3)
idna (2.0)
ipaddress (1.0.14)
Jinja2 (2.8)
M2Crypto (0.22.3)
MarkupSafe (0.23)
msgpack-python (0.4.6)
npyscreen (4.10.0)
pip (7.1.2)
psutil (3.2.1)
pyasn1 (0.1.8)
pycparser (2.14)
pycrypto (2.6.1)
PyInstaller (2.1)
pyroute2 (0.3.14)
python-iptables (0.9.0)
pytz (2015.4)
PyYAML (3.11)
pyzmq (14.7.0)
requests (2.7.0)
salt (2015.5.5)
setuptools (18.0.1)
six (1.9.0)
tornado (4.2.1)
tzlocal (1.2)
wheel (0.24.0)
И этот другой пакет оборотов установлен через YUM инструмент:
[[email protected] test]# rpm -qa | grep -i zmq
python-zmq-14.3.1-1.el6.x86_64
Case ONE: Работает с Python Interpreter.
(Compiler)[[email protected] test]$ python test.py end
Дело TWO: НЕ работает после PyInstaller.
(Compiler)[[email protected] test]$ pyinstaller --onefile test.py ... 12135 INFO: building EXE from out00-EXE.toc 12136 INFO: Appending archive to EXE /test/dist/tes (Compiler)[[email protected] test]$ /test/dist/test /tmp/_MEIl3jKVa/zmq/libzmq.so: undefined symbol: crypto_secretbox_open end
Что я пропускаю? Заранее спасибо!