当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu 10.4上安装Python-2.7

如何解决《在Ubuntu10.4上安装Python-2.7》经验,为你挑选了2个好方法。

我似乎无法正确安装zlib,我在Ubuntu10.4上从源代码安装了Python

'######## edit #####################
bobince和Luper帮忙.
确保安装这些软件包,然后重新编译Python:
sudo aptitude install zlib1g-dev libreadline6-dev libdb4.8-dev libncurses5-dev
'##################### ############

安装后,我尝试安装setuptools.py

$ sh setuptools-0.6c11-py2.7.egg   
Traceback (most recent call last):  
  File "", line 1, in   
zipimport.ZipImportError: can't decompress data; zlib not available  

然后我安装了zlib:

$ sudo aptitude install zlibc  
Reading package lists... Done  
Building dependency tree         
Reading state information... Done  
Reading extended state information        
Initializing package states... Done  
The following NEW packages will be installed:  
  zlibc   
0 packages upgraded, 1 newly installed, 0 to remove and 44 not upgraded.  
Need to get 74.6kB of archives. After unpacking 299kB will be used.  
Writing extended state information... Done  
Get:1 http://archive.ubuntu.com/ubuntu/ lucid/universe zlibc 0.9k-4.1 [74.6kB]  
Fetched 74.6kB in 0s (108kB/s)  
Selecting previously deselected package zlibc.  
(Reading database ... 19824 files and directories currently installed.)  
Unpacking zlibc (from .../zlibc_0.9k-4.1_amd64.deb) ...  
Processing triggers for man-db ...  
Setting up zlibc (0.9k-4.1) ...  
Reading package lists... Done               
Building dependency tree         
Reading state information... Done  
Reading extended state information        
Initializing package states... Done  

在重新编译Python之前:

但是setuptools仍然无法安装:

$ sh setuptools-0.6c11-py2.7.egg   
Traceback (most recent call last):  
  File "", line 1, in   
zipimport.ZipImportError: can't decompress data; zlib not available  

我很困惑.

我检查了我的权限:

lrwxrwxrwx 1 root      18 Oct 28 18:19 /usr/bin/python -> /usr/bin/python2.7
lrwxrwxrwx 1 root      24 Oct 28 18:26 /usr/bin/python2.7 -> /usr/local/bin/python2.7
lrwxrwxrwx 1 root       9 Oct 28 15:13 /usr/bin/python2 -> python2.6
-rwxr-xr-x 1 root 2613296 Apr 16  2010 /usr/bin/python2.6

我注意到我添加了一个额外的步骤,所以我重构了它:

llrwxrwxrwx 1 root      24 Oct 28 18:33 /usr/bin/python -> /usr/local/bin/python2.7  
lrwxrwxrwx 1 root       9 Oct 28 15:13 /usr/bin/python2 -> python2.6  
-rwxr-xr-x 1 root 2613296 Apr 16  2010 /usr/bin/python2.6  

所以现在,Python2.7应该是默认版本,但它仍然失败.

$ sh setuptools-0.6c11-py2.7.egg --prefix=/usr/local/bin/python2.7  
Traceback (most recent call last):  
  File "", line 1, in   
zipimport.ZipImportError: can't decompress data; zlib not available  

zlib应该放在哪里才能正常工作?

$ find / -name zlib 2>/dev/null  
/home/username/sources/Python-2.7/Modules/zlib  
/home/username/sources/Python-2.7/Demo/zlib  

username@servername Thu Oct 28 18:43:17 ~/sources   
$ find / -name zlibc 2>/dev/null  
/usr/share/lintian/overrides/zlibc  
/usr/share/doc/zlibc

bobince.. 20

你不想要zlibc,完全是另一回事.你想要的zlib1g(肯定会已经安装),正如Luper所说的那样,是'开发'包zlib1g-dev.

基于Debian的Linux发行版将每个C库拆分为一个单独的运行时二进制包和一个开发包,该包在编译时提供包含的头.如果你想从依赖库的源代码编译,你需要两个包.这有点令人烦恼,但可能是不可避免的,因为Ubuntu提供了大量的lib.

请确保你在其他带-dev包,你可能想Python中可以使用,也如libexpat1-dev,libdb4.8-dev,libncurses5-devlibreadline6-dev(使用Python解释器没有的ReadLine是痛苦的!).然后,您必须重新编译Python才能利用它们.

(或者,如果你不能打扰,你可能会忘记setuptools,只需打开自己的最终应用程序并将其放入网站包或任何地方.不得不说我不是鸡蛋的忠实粉丝.)



1> bobince..:

你不想要zlibc,完全是另一回事.你想要的zlib1g(肯定会已经安装),正如Luper所说的那样,是'开发'包zlib1g-dev.

基于Debian的Linux发行版将每个C库拆分为一个单独的运行时二进制包和一个开发包,该包在编译时提供包含的头.如果你想从依赖库的源代码编译,你需要两个包.这有点令人烦恼,但可能是不可避免的,因为Ubuntu提供了大量的lib.

请确保你在其他带-dev包,你可能想Python中可以使用,也如libexpat1-dev,libdb4.8-dev,libncurses5-devlibreadline6-dev(使用Python解释器没有的ReadLine是痛苦的!).然后,您必须重新编译Python才能利用它们.

(或者,如果你不能打扰,你可能会忘记setuptools,只需打开自己的最终应用程序并将其放入网站包或任何地方.不得不说我不是鸡蛋的忠实粉丝.)



2> 小智..:

请记住,Ubuntu正在使用名为/ lib/x86_64-linux-gnu的目录来实现x64架构.如果您正在使用该架构,则需要创建符号链接:

$ sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/libz.so

此外,您应该为其他共享库执行相同的操作.


我个人的偏好是修改python distutils以查找正确的位置.这个命令可以解决这个问题:/ bin/sed -i -e"/self.library_dirs =/s#\ [\]#[\'/ usr/lib/x86_64-linux-gnu \',\'/ lib/x86_64-linux-gnu \']#"/usr/lib/python2.7/distutils/command/build_ext.py
推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有