2017-03-28 52 views
3

我在Centos7上使用Python 3.4.4。pyinstaller錯誤:OSError:未找到Python庫:libpython3.4mu.so.1.0,libpython3.4m.so.1.0,libpython3.4.so.1.0

我在本地機器上創建了一個使用qt模塊的python程序。該程序在我的本地機器上運行良好。 我現在試圖用pyinstaller創建一個可執行文件。我使用的命令:

pyinstaller main.py 

我得到以下輸出:

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) 

有誰知道這個問題可能是什麼? 只是說我已經python3-devel的和python-devel的安裝(相對於在打印輸出末尾的建議。) 感謝

+1

可能的'蟒蛇,devel'沒有安裝 – myaut

+1

喜LD_LIBRARY_PATH環境變量DYLD_LIBRARY_PATH在OS X的正確路徑,感謝您的答覆,正如我在我的帖子末尾所說的安裝python-devel和python3-devel。 – neilH

+0

解決方案是安裝python34-devel – neilH

回答

0

您必須安裝python-dev的爲你的Python的版本

例如:

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

CENTOS/RedHat的 - 的Python 3.4 ---> python34-devel的

的CentOS/RedHat的 - 的Python 2.7 ---> python27-devel的

一個這樣的錯誤會被人誤解,( 「未找到Python庫!」)的IOError PyInstaller需要捆綁了Python庫,它是Python解釋器的主要部分,鏈接爲動態加載庫。該文件的名稱和位置因使用的平臺而異。一些Python安裝默認不包含動態Python庫(可能存在靜態鏈接的庫,但不能使用)。您可能需要安裝某種開發包。或者,庫可能存在,但不在PyInstaller正在搜索的文件夾中。

PyInstaller查找python庫的位置在不同的操作系統中有所不同,但在大多數系統中會檢查/ lib和/ usr/lib。如果你不能把蟒蛇圖書館裏,嘗試設置在Linux或

Reference

+0

您好,感謝您的回覆。這沒有奏效,我已經將我的python3.4庫(/ usr/local/lib /)的路徑添加到LD_LIBRARY_PATH中。我也試着將這個庫複製到/ usr/lib。雖然我收到了同樣的錯誤。 – neilH

+0

請參閱http://stackoverflow.com/questions/7880454/python-executable-not-finding-libpython-shared-library和https://github.com/pyenv/pyenv/wiki/Home/_compare/45570ea%5E ... 45570ea – RaminNietzsche

+0

我在我的電腦上執行了find命令,查找文件libpython3.4m.so.1.0,libpython3.4mu.so.1.0和libpython3.4.so.1.0,但沒有任何顯示。我猜這可能是問題?不知道如何解決,但 – neilH