我使用pyenv安装python 3.8.2并创建了virtualenv。在virtualenv中,我使用pipenv安装了pandas
。
但是,当导入大熊猫时,我得到以下信息:
[...]
File "/home/luislhl/.pyenv/versions/poc-prefect/lib/python3.8/site-packages/pandas/io/common.py", line 3, in <module>
import bz2
File "/home/luislhl/.pyenv/versions/3.8.2/lib/python3.8/bz2.py", line 19, in <module>
from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'
经过一些搜索之后,我发现有人建议我在系统中安装bzip2库后从源代码重新构建Python。
但是,尝试用sudo dnf install bzip2-devel
安装它后,我已经安装了它。
据我所知,pyenv在安装某些版本时从源代码构建python。那么,为什么在构建时它不能包含bzip2模块呢?
我如何设法使用pyenv重建Python以使bzip2可用?我在Fedora 30中
提前感谢
UPDATE我尝试在详细模式下使用pyenv安装另一个版本的python,以查看编译输出。
编译结束时有此消息:
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
但是正如我之前所说,我检查了系统中已经安装了bzip2。所以我不知道该怎么办。
好吧,一段时间后我找到了解决方案。这很简单,但是我花了一些时间才意识到。
结果是我安装的bzip2-devel
是32位版本。
编译过程正在寻找64位版本,但没有找到。因此,我必须专门安装64位版本:
sudo dnf install bzip2-devel-1.0.6-29.fc30.x86_64