I'm using Python 3.4.4 on Centos7.
I've created a python program on my local machine that makes use of qt modules. The program is running fine on my local machine. I'm now trying to create an executable with pyinstaller. I'm using the command:
pyinstaller main.py
I'm getting the following output:
40 INFO: PyInstaller: 3.2.1
40 INFO: Python: 3.4.4
41 INFO: Platform: Linux-3.10.0-327.36.3.el7.x86_64-x86_64-with-centos-7.3.1611-Core
41 INFO: wrote /home/neilharris/Documents/Python_Projects/transcoder/main.spec
42 INFO: UPX is not available.
44 INFO: Extending PYTHONPATH with paths
['/home/neilharris/Documents/Python_Projects/transcoder',
'/home/neilharris/Documents/Python_Projects/transcoder']
44 INFO: checking Analysis
44 INFO: Building Analysis because out00-Analysis.toc is non existent
44 INFO: Initializing module dependency graph...
45 INFO: Initializing module graph hooks...
47 INFO: Analyzing base_library.zip ...
1869 INFO: Processing pre-find module path hook distutils
3030 INFO: running Analysis out00-Analysis.toc
3039 INFO: Caching module hooks...
3046 INFO: Analyzing /home/neilharris/Documents/Python_Projects/transcoder/main.py
3089 INFO: Loading module hooks...
3089 INFO: Loading module hook "hook-xml.py"...
3353 INFO: Loading module hook "hook-encodings.py"...
3437 INFO: Loading module hook "hook-PyQt4.py"...
3438 INFO: Loading module hook "hook-distutils.py"...
3440 INFO: Loading module hook "hook-PyQt4.QtCore.py"...
3575 INFO: Loading module hook "hook-pydoc.py"...
3576 INFO: Loading module hook "hook-PyQt4.QtGui.py"...
3849 INFO: Looking for ctypes DLLs
3861 INFO: Analyzing run-time hooks ...
3867 INFO: Including run-time hook 'pyi_rth_qt4plugins.py'
3877 INFO: Looking for dynamic libraries
ldd: warning: you do not have execution permission for `/usr/local/lib/python3.4/site-packages/PyQt4/QtGui.so'
ldd: warning: you do not have execution permission for `/usr/local/lib/python3.4/site-packages/PyQt4/QtCore.so'
5115 INFO: Looking for eggs
5115 INFO: Python library not in binary depedencies. Doing additional searching...
Traceback (most recent call last):
File "/usr/local/bin/pyinstaller", line 9, in <module>
load_entry_point('PyInstaller==3.2.1', 'console_scripts', 'pyinstaller')()
File "/usr/local/lib/python3.4/site-packages/PyInstaller/__main__.py", line 90, in run
run_build(pyi_config, spec_file, **vars(args))
File "/usr/local/lib/python3.4/site-packages/PyInstaller/__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "/usr/local/lib/python3.4/site-packages/PyInstaller/building/build_main.py", line 788, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "/usr/local/lib/python3.4/site-packages/PyInstaller/building/build_main.py", line 734, in build
exec(text, spec_namespace)
File "<string>", line 16, in <module>
File "/usr/local/lib/python3.4/site-packages/PyInstaller/building/build_main.py", line 212, in __init__
self.__postinit__()
File "/usr/local/lib/python3.4/site-packages/PyInstaller/building/datastruct.py", line 161, in __postinit__
self.assemble()
File "/usr/local/lib/python3.4/site-packages/PyInstaller/building/build_main.py", line 543, in assemble
self._check_python_library(self.binaries)
File "/usr/local/lib/python3.4/site-packages/PyInstaller/building/build_main.py", line 626, in _check_python_library
raise IOError(msg)
OSError: Python library not found: libpython3.4m.so.1.0, libpython3.4mu.so.1.0, libpython3.4.so.1.0
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.
* On Debian/Ubuntu, you would need to install Python development packages
* apt-get install python3-dev
* apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)
Does anyone know what the issue could be? Just to say I have python3-devel and python-devel installed (in relation to the suggestion at the end of the printed output.) Thanks
for Linux system like your CentOS
, try rebuild python to generated shared lib using:
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.4.4
as said in pyenv offical doc
for example:
Debian/Ubuntu - Python 2.7 ---> python2.7-dev
CentOs/RedHat - Python 3.4 ---> python34-devel
CentOs/RedHat - Python 2.7 ---> python27-devel
One of these errors can be puzzling, however: IOError("Python library not found!") PyInstaller needs to bundle the Python library, which is the main part of the Python interpreter, linked as a dynamic load library. The name and location of this file varies depending on the platform in use. Some Python installations do not include a dynamic Python library by default (a static-linked one may be present but cannot be used). You may need to install a development package of some kind. Or, the library may exist but is not in a folder where PyInstaller is searching.
The places where PyInstaller looks for the python library are different in different operating systems, but /lib and /usr/lib are checked in most systems. If you cannot put the python library there, try setting the correct path in the environment variable LD_LIBRARY_PATH in Linux or DYLD_LIBRARY_PATH in OS X.
Reference
I have solved this in the way below:
1st. check your system if it has libpython3.4m.so.1.0. If yes, go to step 2nd. If no, download it(I'm using anaconda python, so I have it in anaconda folder.)
2nd. sudo cp /folder/to/your/libpython3.4m.so.1.0 /usr/lib
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With