在Python虚拟环境中使用pip安装Pandas时出现'bz2模块不可用

15 投票
3 回答
45295 浏览
提问于 2025-04-17 21:54

我正在阅读这篇文章 Numpy, Scipy, and Pandas - Oh My!,想安装一些Python包,但在安装Pandas的时候遇到了问题:

pip install -e git+https://github.com/pydata/pandas#egg=pandas

我把'wesm'改成了'pydata'以获取最新版本,唯一不同的是我在用pythonbrew。

我找到了一篇和这个错误相关的文章 这篇文章,但是里面提到的bz2的Makefile在哪里呢?有没有其他方法可以解决这个问题?

非常感谢任何帮助。谢谢。

3 个回答

2

pyenv

我发现用源代码安装Python需要很长时间(我是在i7上做的 :/);特别是 makemake test 这些步骤...

一个更简单、更快的办法是用 pyenv 安装另一个版本的Python(我安装的是Python 3.7.8),可以按照 这些步骤来操作。

这样不仅解决了在同一系统上使用多个Python版本的问题,还能在没有 virtualenvwrapper 的情况下管理我的虚拟环境(因为在我新装的ubuntu-20.04上它出现了bug)。

20

我在网上花了很多时间,发现大家的回答都不完整。下面是让它正常工作的步骤,按部就班来做。

  1. 首先,运行 sudo apt-get install libbz2-dev。感谢 Freek Wiekmeijer 的帮助。
    接下来,你需要用 bz2 来重新编译 Python。之前安装的 Python 是不行的。接下来按照以下步骤操作:

  2. https://www.python.org/downloads/source/ 下载一个稳定的 Python 版本,然后解压这个 Gzipped 源代码压缩包。你可以用 wget https://python-tar-file-link.tgz 来下载,使用 tar -xvzf python-tar-file.tgz 在当前目录解压。

  3. 进入解压后的文件夹,然后依次运行以下命令:

    • ./configure
    • make
    • make install
  4. 这样就会生成一个包含 bz2 的 Python 文件。

  5. 因为这个 Python 没有安装 pip,所以我们打算用刚刚编译的 Python 创建一个虚拟环境,然后用之前安装的 pip 来安装 pandas。

  6. 你会在同一目录下看到 python 文件。接下来创建一个虚拟环境。

    • ./python -m env myenv (可以选择在当前目录下创建 myenv,或者在其他地方)
    • source myenv/bin/activate (激活虚拟环境)
    • pip install pandas (在当前环境中安装 pandas)
  7. 就这样。现在在这个环境中,你应该能顺利使用 pandas 了。

29

你需要在构建 Python 的时候加上 BZIP2 的支持。

在构建 Python 之前,先安装以下软件包:

  • 对于 Red Hat/Fedora/CentOS 系统:yum install bzip2-devel
  • 对于 Debian/Ubuntu 系统:sudo apt-get install libbz2-dev

解压 Python 的压缩包。然后

configure;
make;
make install

使用新安装的 Python 来安装 pip

另外一种方法:

可以使用 yum 或 apt 安装一个已经包含 BZIP2 支持的 Python 二进制版本。

更多信息请查看:ImportError: No module named bz2 for Python 2.7.2

撰写回答