在Python虚拟环境中使用pip安装Pandas时出现'bz2模块不可用
我正在阅读这篇文章 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 个回答
pyenv
我发现用源代码安装Python需要很长时间(我是在i7上做的 :/);特别是 make
和 make test
这些步骤...
一个更简单、更快的办法是用 pyenv
安装另一个版本的Python(我安装的是Python 3.7.8),可以按照 这些步骤来操作。
这样不仅解决了在同一系统上使用多个Python版本的问题,还能在没有 virtualenvwrapper
的情况下管理我的虚拟环境(因为在我新装的ubuntu-20.04上它出现了bug)。
我在网上花了很多时间,发现大家的回答都不完整。下面是让它正常工作的步骤,按部就班来做。
首先,运行
sudo apt-get install libbz2-dev
。感谢 Freek Wiekmeijer 的帮助。
接下来,你需要用 bz2 来重新编译 Python。之前安装的 Python 是不行的。接下来按照以下步骤操作:从 https://www.python.org/downloads/source/ 下载一个稳定的 Python 版本,然后解压这个 Gzipped 源代码压缩包。你可以用
wget https://python-tar-file-link.tgz
来下载,使用tar -xvzf python-tar-file.tgz
在当前目录解压。进入解压后的文件夹,然后依次运行以下命令:
./configure
make
make install
这样就会生成一个包含 bz2 的 Python 文件。
因为这个 Python 没有安装 pip,所以我们打算用刚刚编译的 Python 创建一个虚拟环境,然后用之前安装的 pip 来安装 pandas。
你会在同一目录下看到
python
文件。接下来创建一个虚拟环境。./python -m env myenv
(可以选择在当前目录下创建 myenv,或者在其他地方)source myenv/bin/activate
(激活虚拟环境)pip install pandas
(在当前环境中安装 pandas)
就这样。现在在这个环境中,你应该能顺利使用 pandas 了。
你需要在构建 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 二进制版本。