tar文件compressionerror BZ2模块不可用

问题描述:

我试图安装扭曲 PIP安装https://pypi.python.org/packages/18/85/eb7af503356e933061bf1220033c3a85bad0dbc5035dfd9a97f1e900dfcb/Twisted-16.2.0.tar.bz2#md5=8b35a88d5f1a4bfd762a008968fddabftar文件compressionerror BZ2模块不可用

这是一个django-channels项目,我有以下错误的问题

Exception: 
Traceback (most recent call last): 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/tarfile.py", line 1655, in bz2open 
    import bz2 
    File "/usr/local/lib/python3.5/bz2.py", line 22, in <module> 
    from _bz2 import BZ2Compressor, BZ2Decompressor 
ImportError: No module named '_bz2' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/home/petarp/.virtualenvs/CloneFromGitHub/lib/python3.5/site-packages/pip/basecommand.py", line 215, in main 
    status = self.run(options, args) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/commands/install.py", line 310, in run 
    wb.build(autobuilding=True) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/wheel.py", line 750, in build 
    self.requirement_set.prepare_files(self.finder) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/req/req_set.py", line 370, in prepare_files 
    ignore_dependencies=self.ignore_dependencies)) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/req/req_set.py", line 587, in _prepare_file 
    session=self.session, hashes=hashes) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/download.py", line 810, in unpack_url 
    hashes=hashes 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/download.py", line 653, in unpack_http_url 
    unpack_file(from_path, location, content_type, link) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/utils/__init__.py", line 605, in unpack_file 
    untar_file(filename, location) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/site-packages/pip/utils/__init__.py", line 538, in untar_file 
    tar = tarfile.open(filename, mode) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/tarfile.py", line 1580, in open 
    return func(name, filemode, fileobj, **kwargs) 
    File "/home/petarp/.virtualenvs/ErasmusCloneFromGitHub/lib/python3.5/tarfile.py", line 1657, in bz2open 
    raise CompressionError("bz2 module is not available") 
tarfile.CompressionError: bz2 module is not available 

显然我m缺少bz2模块,所以我试图手动安装它,但是没有解决python 3.5问题,所以我该如何解决这个问题?

我做了什么@ e4c5建议,但我这么做是为了python3.5.1,输出

➜ ~ python3.5        
Python 3.5.1 (default, Apr 19 2016, 22:45:11) 
[GCC 4.8.4] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import bz2 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python3.5/bz2.py", line 22, in <module> 
    from _bz2 import BZ2Compressor, BZ2Decompressor 
ImportError: No module named '_bz2' 
>>> 
[3] + 18945 suspended python3.5 
➜ ~ dpkg -S /usr/local/lib/python3.5/bz2.py 
dpkg-query: no path found matching pattern /usr/local/lib/python3.5/bz2.py 

我在Ubuntu 14.04 LTS和我已经安装了从源蟒蛇3.5。

+0

你是如何尝试手动安装的,它的含义是什么都没有解决? – e4c5

+0

也许我没有很好的表达,手动的我的意思是我用'sudo apt-get install libbz2-dev'安装了它,但是没有为'python3.5'安装它,我仍然当我在Python shell中导入它时丢失了这个模块 – PetarP

在我的python 3.4安装中,我似乎没有任何问题import bz2。所以,我没有

import bz2 
print (bz2.__file__) 

并发现它位于/usr/lib/python3.4/bz2.py然后我做了

dpkg -S /usr/lib/python3.4/bz2.py 

这表明:

libpython3.4-STDLIB:AMD64:/ usr/lib中/ python3 .4/bz2.py

因此,下面的命令应该有希望解决这个问题:

apt-get install libpython3.4-stdlib 

更新:

如果您已经从源编译蟒蛇3.5,这是非常有可能的BZ2尚未在编译首先做

./configure --with-libs='bzip' 

同样请重新安装。也适用于python 3.6。请注意,这可能会抱怨其他缺失的依赖关系。您必须逐个安装缺失的依赖项,直到涵盖所有内容。

+0

我编辑了我的问题,我仍然有一个'python 3.5'的问题,是的这适用于3.4版本,我有'bz2' – PetarP

+0

什么是你的版本的Ubuntu(或相应的Ubuntu版本为您的发行版) – e4c5

+0

我使用的是Ubuntu 14.04 tls – PetarP