7 python python-module pyinstaller python-2.7
我正在尝试在Linux上使用PyInstaller 2.0制作Python脚本的二进制版本.当我跑:
$ python pyinstaller.py myscript.py
Run Code Online (Sandbox Code Playgroud)
我收到错误:
8907 INFO: Looking for Python library libpython2.7.so
Traceback (most recent call last):
...
File "pyinstaller.py", line 91, in <module>
raise IOError("Python library not found!")
IOError: Python library not found!
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题?
我在用:
Linux#98-Ubuntu x86_64 GNU/Linux
用python 2.7.系统上还有其他的Pythons但是我已经设定了:
alias python="python2.7"
Run Code Online (Sandbox Code Playgroud)
在我正在使用的服务器中,只有/usr/lib/python2.6
而且没有,/usr/lib/python2.7
但是我经常使用python 2.7并且功能正常等等所以我不明白为什么找到它的库会有问题.有一个/usr/local/lib/libpython2.7.a
.
在我使用的服务器中,只有/usr/lib/python2.6而不是/usr/lib/python2.7但我经常使用python 2.7并且功能正常等等所以我不明白为什么它找到它的库会有问题.有一个/usr/local/lib/libpython2.7.a.
如果没有libpython2.7.so
,当然找到该库将是一个问题.
您能够使用Python解释器的原因可能是它是静态链接的.
有两种方法可以解决这个问题.
首先,您可以为Python 2.7安装共享库.如果您使用的是旧版本的Ubuntu,例如Python 2.6,并且您从python2.7
软件包安装了2.7,那么这应该只是安装问题libpython2.7
.
如果你已从其他来源获得2.7,那么Ubuntu libpython2.7
软件包显然无法正常工作 - 或者它可以通过安装第二个副本来工作python2.7
,可能会覆盖你已经拥有的一些文件,并且肯定会使你感到困惑.无论哪种方式,都不要这样做.要么为现有的2.7获取剩余的Python,要么卸载2.7并使用Ubuntu包.(对于某些Python发行版,"获取其余部分"是不可能的,因为如果安装共享库,则会获得动态链接的Python可执行文件而不是静态链接的文件.在这种情况下,您几乎必须卸载并重新安装.)
其次,您可以使用PyInstaller
static-lib支持.有关详细信息,请参阅故障单420,但简单的想法是,如果启用此功能,并且PyInstaller认为您的平台应该具有libpython2.7.so
但无法找到它,则它将寻找一个libpython2.7.a
静态链接.上次我需要这个,它没有检查到主干.通过快速浏览一下故障单,看起来现在包含补丁,但在默认PyInstaller
构建中禁用,里程碑设置为3.0,因此,您可能仍需要手动构建PyInstaller
才能使其正常工作.
最后一两件事:这有可能是你做的有libpython2.7.so,但它只是安装怪异的地方像/opt/python27/lib
什么,有/opt/python27
无处您的路径上,但/usr/local/bin/python27
可以找到它,因为它明确地建立得到的东西出来/opt/python27
.对于使用MacPorts或Fink的Mac用户而言,这种事情往往只是一个问题,而不是Linux用户,但这并非不可能./usr/local/bin/python27
如果您认为这可能是问题,您可以查看dl表.
归档时间: |
|
查看次数: |
13908 次 |
最近记录: |