ImportError:没有名为bz2的模块用于Python 2.7.2 |
您所在的位置:网站首页 › linux安装bz2 › ImportError:没有名为bz2的模块用于Python 2.7.2 |
问题描述
我在Ubuntu 11.10上使用Python 2.7.2。导入bz2模块时出现此错误: ImportError: No module named bz2 我认为bz2模块应该配备Python 2.7。我该如何解决这个问题? 编辑:我想我之前通过源代码编译安装了Python 2.7.2。可能在那时我没有libbz2-dev,所以没有安装bz2模块。现在,我希望通过安装Python2.7 sudo apt-get install python2.7但它会说它已经安装好了。有没有办法卸载以前的Python2.7安装并重新安装? 最佳解决方法好的,这在答案形式中更容易理解,所以我会将我在评论中写的内容移到这个答案。 幸运的是,你没有覆盖系统版本的python,因为Ubuntu 11.10预装了2.7.2。 您的python二进制文件(python和python2.7)位于/usr/local/bin中,这是一个通常安装了user-specific内容的目录。这很好,这意味着你的系统python仍然存在。 首先,尝试运行系统python。从命令行键入: /usr/bin/python -c "import bz2; print bz2.__doc__"这应该打印出这样的东西: λ > /usr/bin/python -c "import bz2; print bz2.__doc__" The python bz2 module provides a comprehensive interface for the bz2 compression library. It implements a complete file interface, one shot (de)compression functions, and types for sequential (de)compression.如果是这样,意味着你没事。 所以你只需要修复你的PATH,告诉shell在哪里找到命令。 /usr/local/bin将优先于/usr/local,因此有一些方法可以解决这个问题,按照难度/烦恼/改变你的系统的顺序: 从/usr/local/bin中删除符号链接python这将使得当您键入python时,它应该返回执行/usr/bin/python,这是系统的python 2.7.2的别名。 sudo rm /usr/local/bin/python 将/usr/bin移至PATH中具有更高的优先级如果您已经在/usr/local/bin中拥有应该优先于/usr/bin的东西,那么可能不可取,但我是为了完整性而添加它。 在你的shell配置文件中(不确定Ubuntu的默认设置,但我使用的是~/.bash_profile,你可以这样做: export PATH=/usr/bin:$PATH 删除你的python安装这是极端的,我提出的第一个选项应该是你的第一选择。 你真的需要自己的Python版本吗?如果你想要孤立的python环境,你可能真的想要virtualenv。你可以删除你的,除非有理由不这样做。 虽然这会有点烦人,但基本上: 从/usr /local /bin中删除python和python2.7以及pythonw和pythonw2.7命令。 删除/usr/local/lib/python/2.7.2 这部分不完整,因为我忘了还有什么。 次佳解决方法我遇到了同样的问题,这是我的解决方案。 导入错误的原因是在构建python时,系统找不到bz2头并跳过构建bz2模块。 在Ubuntu /Debian上安装它们: sudo apt-get install libbz2-devFedora的: sudo yum install bzip2-devel然后重建python 来自another answer @ birryree的回答有助于回到系统的原始python。 第三种解决方法如果你必须使用python2.7,你应该运行:(Centos 6.4) sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /usr/local/lib/python2.7/如果程序需要,也可以把bz2.so放入到自己的python项目中,前提是要保证项目在同一系统类型linux的机器上运行,不然可能导致import bz2.so错误。 第四种方法也许它会帮助某人: apt-get install libbz2-dev # for bz2 apt-get install libssl-dev # for _ssl apt-get install libsqlite3-dev # for sqlite apt-get install libreadline6-dev # for readline, _curses, _curses_panel 第五种方法对于Ubuntu /Debian: sudo apt-get install libbz2-dev对于Fedora: sudo yum install bzip2-devel然后重新编译python并安装它。 第六种方法matocnhoi的答案在centOS中对我有用 sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /usr/local/lib/python2.7/我使用virtualenv,所以命令是 sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so ../../../env/lib/python2.7/ 第七种方法我在/usr/lib64/python2.6/lib-dynload/bz2.so /usr/local/lib/python2.7/lib-dynload/之间使用了符号链接 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |