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

21,118

Solution 1

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

Solution 2

You must install python-dev for your python's version

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

Solution 3

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

Share:
21,118

Related videos on Youtube

neilH
Author by

neilH

Google Cloud Platform Support representative

Updated on January 11, 2022

Comments

  • neilH
    neilH over 2 years

    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

    • myaut
      myaut about 7 years
      Likely python-devel not installed
    • neilH
      neilH about 7 years
      Hi, thanks for the response, as i said at the end of my post python-devel and python3-devel are installed.
    • neilH
      neilH about 7 years
      The solution was to install python34-devel
  • neilH
    neilH about 7 years
    Hello,thanks for your response. This hasn't worked, I've added the path of my python3.4 library (/usr/local/lib/) to LD_LIBRARY_PATH. I've also tried copying this library to /usr/lib. I'm getting the same errors though.
  • RaminNietzsche
    RaminNietzsche about 7 years
  • neilH
    neilH about 7 years
    I've performed a find command on my PC for files libpython3.4m.so.1.0, libpython3.4mu.so.1.0 and libpython3.4.so.1.0 and nothing has shown up. I'm guessing this might be the issue? Not sure how to resolve though
  • RaminNietzsche
    RaminNietzsche about 7 years
    search libpython3.4m.so and if you can find it, make a link.
  • neilH
    neilH about 7 years
    ok, i've found the answer! I need to install python34-devel which I managed through yum.
  • RaminNietzsche
    RaminNietzsche about 7 years
  • Geeocode
    Geeocode over 5 years
    Works like charm. Note there is an open issue on github regarding it. If anyone want to speed up things please post a like or comment on the relevant place.
  • Taylor D. Edmiston
    Taylor D. Edmiston over 4 years
    Thank you -- this was a bit hard to find in the docs / wiki directly but it is what made it work for me on macOS.
  • qrtLs
    qrtLs over 3 years
    Make sure you uninstall instead of saying reinstall to the console prompt, otherwise in my case no work.