Подтвердить что ты не робот

Отсутствует модуль python bz2

Я установил в своем домашнем каталоге.

[[email protected]~ dev1]$ /home/spatel/python-2.7.3/bin/python -V
Python 2.7.3

Я пытаюсь запустить один script, который требует версию python 2.7.x, и я получаю ошибку bz2

[[email protected]~ dev1]$ ./import_logs.py
Traceback (most recent call last):
  File "./import_logs.py", line 13, in <module>
    import bz2
ImportError: No module named bz2

Я попытался установить модуль bz2, но у меня появилось много ошибок

 [[email protected] python-bz2-1.1]$ /home/spatel/python-2.7.3/bin/python setup.py install
    ...
    ...
    ...
    bz2.c:1765: error: âBZ_FINISH_OKâ undeclared (first use in this function)
    bz2.c:1765: warning: comparison between pointer and integer
    bz2.c:1771: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1778: error: âPyMemberDefâ has no member named ânext_outâ
    bz2.c:1778: error: âPyMemberDefâ has no member named âtotal_out_hi32â
    bz2.c:1778: error: âPyMemberDefâ has no member named âtotal_out_lo32â
    bz2.c:1778: error: invalid operands to binary +
    bz2.c:1778: warning: statement with no effect
    bz2.c:1779: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1779: error: âPyMemberDefâ has no member named ânext_outâ
    bz2.c:1779: error: invalid operands to binary -
    bz2.c:1779: error: invalid operands to binary -
    bz2.c:1779: warning: statement with no effect
    bz2.c:1783: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1784: error: âPyMemberDefâ has no member named âtotal_out_hi32â
    bz2.c:1784: error: âPyMemberDefâ has no member named âtotal_out_lo32â
    bz2.c:1784: warning: passing argument 2 of â_PyString_Resizeâ makes integer from pointer without a cast
    error: command 'gcc' failed with exit status 1
4b9b3361

Ответ 1

Вероятно, когда вы создали python из источника, у вас нет заголовков bz2.

Установите их на Ubuntu/Debian:

sudo apt-get install libbz2-dev

Fedora:

sudo yum install bzip2-devel 

И снова создадим python. Вы можете заметить, что python проверяет множество библиотек при настройке/построении, если вы пропустите некоторые из них, вы, вероятно, не получите поддержки для таких библиотек, как bz2, в вашем случае.

Вы должны получить двоичные файлы предварительной сборки, чтобы избежать такого рода вещей. Ubuntu 12.04 пакеты python 2.7.3, вам нужна ваша версия script.

Ответ 2

Если вы устанавливаете python в определенном месте, просто установите libbz2-dev не получится.

Существует обходное решение для centos:

  • Centos 6

    sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /python_install_path/lib/python2.7
    
  • Centos 7

    sudo cp /usr/lib64/python2.7/lib-dynload/bz2.so /python_install_path/lib/python2.7
    

python_install_path обычно /usr/local/lib/python2.7/, вам потребуется заменить его, если у вас есть пользовательский путь python.

Ответ 3

В CentOS 7 установите bzip2-devel:

sudo yum install  bzip2-devel

Затем перекомпилируйте python.

Ответ 4

У вас должна быть установлена ​​версия библиотеки bz2 c. Вероятно, вы этого не сделали и почему он не был установлен, когда вы создали свою пользовательскую копию python. На Ubuntu это пакет libbz2-dev. Вероятно, он назвал тот же или похожий на Fedora. Или вы можете скачать его с www.bzip.org.

Ответ 5

Вы должны переустановить bzip2 по исходному коду:

  • yum install bzip2-devel

  • wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz

  • tar -zxvf bzip2-1.0.6.tar.gz

  • cd bzip2-1.0.6

  • make && make install

  • настроить и повторно скомпилировать python

те шаги, которые работают иногда.

Наконец, я выяснил проблему, ей нужен /usr/local/Python -3.5.2/ lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so, у него должна быть проблема, когда я компилирую bzip2 по исходному коду. Я копирую этот файл из другой виртуальной машины, чтобы решить проблему.

Ответ 6

Я также должен добавить, что на CentOS 6 убедитесь, что у вас установлен bzip2-devel, а не bzip2-libs.

Ответ 7

решение выше может решить проблемы bz2 с python2.7. но не python 3.x да, вам нужно _bz2.cpython-3xm-x86_64-linux-gnu.so, однако вы должны создать его в своем собственном env.

здесь мое решение:

  • yum install bzip2-devel. (или apt-get)
  • скачать bzip2-1.0.6. make && make install()
  • создайте Python3 _bz2.cpython следующим образом:

vim run.sh под папкой исходного кода python3: Python-3.x.x

export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
./configure --prefix=/home/xxx/Python3 && make && make install

вы можете установить префикс так же, как и в своей предварительной версии, что не приведет к отключению любого установленного вами пакета. Перед этим создайте резервную папку.

Ответ 8

вот мое решение, шаг 2-6 может пропустить:

  1. sudo yum установить bzip2-devel

  2. загрузите bzip2-1.0.6.tar.gz с веб-сайта https://github.com/nemequ/bzip2/releases.

  3. tar -zxvf bzip2-1.0.6.tar.gz
  4. cd bzip2-1.0.6
  5. make && make install
  6. загрузить файл с https://github.com/Imaginashion/ccdev-vision/blob/master/.fr-d0BNfn/django-jquery-file-upload/venv/lib/python3.5/lib-dynload/_bz2.cpython- 35m-x86_64-linux-gnu.so и переместите его в/[ваш путь к питону]/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
  7. sudo ln -s find/usr/lib64 / -type f -name "libbz2.so.1*"/usr/lib64/libbz2.so.1.0 предоставлен https://michaelheap.com/error- find/usr/lib64 / -type f -name "libbz2.so.1*" загрузка -s Харед-библиотеки-libbz2 -s о-1-0-не может открыть -s Харед-объект файл-на-CentOS-7