Pyinstaller error: OSError: Python library not found: libpython3.4mu.so.1.0, libpython3.4m.so.1.0, libpython3.4.so.1.0

I am using Python 3.4.4 on Centos7.

I have created a python program on my local machine that uses qt modules. The program works fine on my local computer. Now I am trying to create an executable using pyinstaller. I am using the command:

pyinstaller main.py

      

I am 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 problem is? Just say I have python3-devel and python-devel installed (relative to the sentence at the end of the printed output). Thanks to

+8


source to share


3 answers


I solved it this way:

The first. check your system if it has libpython3.4m.so.1.0. If yes, skip to step 2. If not, download it (I am using anaconda python, so it is in the anaconda folder).



Second. sudo cp/folder/to/your/libpython3.4m.so.1.0/usr/lib

+1


source


You have to install python-dev for your python version

, eg:

Debian / Ubuntu - Python 2.7 ---> python2.7-dev

CentOs / RedHat - Python 3.4 ---> python34-devel



CentOs / RedHat - Python 2.7 ---> python27-devel

However, one of these errors can be confusing: IOError ("Python library not found!") PyInstaller needs to link the Python library, which is the main part of the Python interpreter, linked as a dynamic loading library. The name and location of this file depends on the platform you are using. Some Python installations do not include the default Python dynamic library (static-linked may be present, but cannot be used). You may need to install a development package. Or the library may exist but is not in the folder where PyInstaller is looking.

The places where PyInstaller looks for the python library differ on different operating systems, but / lib and / usr / lib are checked on most systems. If you can't put the python library there, try setting the correct path in the LD_LIBRARY_PATH environment variable on Linux or DYLD_LIBRARY_PATH on OS X.

Link

0


source


As the error hint shows, no Python library was found.

To clear up this error, I edit .bashrc

and install the Anaconda library Python library to LD_LIBRARY_PATH

:

export LD_LIBRARY_PATH=/usr/local/anaconda3/lib:$LD_LIBRARY_PATH

      

Then PyInstaller works well.

0


source







All Articles