python в Pyenv отсутствует модуль bzip2 - PullRequest
1 голос
/ 20 марта 2020

Я использовал pyenv для установки python 3.8.2 и для создания virtualenv. В virtualenv я использовал pipenv для установки pandas.

Однако при импорте 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'

После некоторого поиска в Google я обнаружил некоторые люди предлагают мне перекомпилировать Python из исходного кода после установки библиотеки bzip2 в моей системе.

Однако после попытки установить его с помощью sudo dnf install bzip2-devel я вижу, что он уже установлен.

As Насколько я знаю, pyenv строит python из исходного кода при установке какой-либо версии. Итак, почему он не смог включить модуль bzip2 при сборке?

Как мне удается перестроить Python с помощью pyenv, чтобы сделать bzip2 доступным? Я нахожусь в Fedora 30

Заранее спасибо

ОБНОВЛЕНИЕ Я попытался установить другую версию python с pyenv в подробном режиме, чтобы увидеть результаты компиляции.

В конце компиляции есть это сообщение:

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?

Но, как я уже говорил, я проверил, что в моей системе уже установлен bzip2. Так что я не знаю, что делать.

1 Ответ

0 голосов
/ 20 марта 2020

Хорошо, я нашел решение через некоторое время. Это было просто, но мне потребовалось некоторое время, чтобы понять это.

Оказывается, проблема в том, что установленная мной bzip2-devel была 32-битной версией.

Процесс компиляции выглядел для 64-битной, так и не нашел. Поэтому мне пришлось специально установить 64-битную версию:

sudo dnf install bzip2-devel-1.0.6-29.fc30.x86_64
...