【问题标题】:Installing Python-2.7 on Ubuntu 10.4在 Ubuntu 10.4 上安装 Python-2.7
【发布时间】:2011-05-02 02:59:49
【问题描述】:

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

'########编辑#####################
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 "<string>", line 1, in <module>  
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 "<string>", line 1, in <module>  
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 "<string>", line 1, in <module>  
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

【问题讨论】:

    标签: python zlib setuptools


    【解决方案1】:

    确保在从源代码配置和编译 Python 时安装了 zlib(以及您需要的标准模块所依赖的任何其他 lib)的 dev 包。

    【讨论】:

      【解决方案2】:

      你不想要zlibc,这完全是另外一回事。你想要zlib1g(肯定已经安装了),正如 Luper 提到的,“开发”包是zlib1g-dev

      基于 Debian 的 Linux 发行版将每个 C 库拆分为一个单独的运行时二进制包和一个开发包,该包提供头文件以在编译时包含。如果你想从依赖库的源代码编译一些东西,你需要两个包。这有点令人烦恼,但考虑到 Ubuntu 等提供的数量惊人的库,这可能是不可避免的。

      确保引入其他可能希望 Python 也能够使用的 -dev 包,例如 libexpat1-devlibdb4.8-devlibncurses5-devlibreadline6-dev(使用没有 readline 的 Python 解释器是痛苦!)。然后,您必须重新编译 Python 才能利用它们。

      (或者,如果您不介意,您可能会忘记 setuptools,然后自己解压缩任何最终应用程序并将其放入站点包或任何地方。不得不说我不是鸡蛋的忠实粉丝.)

      【讨论】:

        【解决方案3】:

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

        $ 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
        【解决方案4】:

        在配置和编译 Python 之前尝试安装 dpkg-dev。这将在系统上安装 dpkg-architecture 可执行文件,Python 使用该可执行文件(参见 setup.py)来确定 libz.so 库的位置。更多详情见http://fnch.users.sourceforge.net/pythononubuntu1004.html

        【讨论】:

        • 在 Xubuntu 12.04.1 上,我必须安装 zlib1g-dev 和 dpkg-dev。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        相关资源
        最近更新 更多