#python #ubuntu #plone #zlib
#python #ubuntu #plone #zlib
Вопрос:
Я новичок Plone и пытаюсь установить Plone 4.0.5 в Ubuntu 11.04 Natty с помощью унифицированного установщика.
Я распаковываю установщик и запускаю ./install.sh zeo
от имени root и получаю следующую ошибку:
Выбрана установка кластера ZEO Подробный журнал установки записывается в / tmp /Plone-4.0.5-UnifiedInstaller/install.log Выбран корневой метод установки. Будет установлен для использования системным пользователем plone Установка Plone 4.0.5 в / usr / local /Plone Пользователь 'plone' уже существует. Нет необходимости создавать его. Пропуск сборки libjpeg Пропуск сборки zlib Пропуск сборки readline Установка Python 2.6.6. Это занимает некоторое время... Обратная трассировка (последний последний вызов): Файл "", строка 1, в Ошибка поиска: неизвестная кодировка: zip Поддержка Python zlib отсутствует; что-то пошло не так в сборке zlib или python. Установка завершилась неудачно. Смотрите подробный журнал установки в /tmp /Plone-4.0.5-UnifiedInstaller/install.log чтобы определить причину.
Я тоже установил эти пакеты Ubuntu:
apt-get install zlib1g zlib1g-dev zlibc libghc6-zlib-dev zlibc
Install.log довольно большой — я просто включаю здесь упоминания о zlib:
Начиная с Вт 17 мая 14:12:46 по восточному времени 2011 настройка: ПРЕДУПРЕЖДЕНИЕ: нераспознанные параметры: --с-readline, --с-zlib, --disable-tk, --с-cxx ... Не удалось найти необходимые биты для сборки этих модулей: _bsddb _sqlite3 _tkinter bsddb185 dbm gdbm sunaudiodev zlib Чтобы найти необходимые биты, загляните в setup.py введите detect_modules() для имени модуля. Не удалось собрать эти модули: crypt nis ...
Я не могу найти setup.py в установочных файлах.
Есть идеи, что мне следует делать или что я должен искать?
Спасибо.
Ответ №1:
Проблема с неиспользуемыми файлами Python и новой настройкой natty с несколькими библиотеками. Я столкнулся с той же проблемой, пытаясь получить поддержку sqlite в Python, созданном из исходного кода.
Вы можете обойти это в разделе обнаружения модулей в setup.py
http://bugs.python.org/issue9762
Редактировать:
Чтобы обойти это, измените lib_dirs
в python setup.py (около строки 408) к этому (для компьютера x86_64):
lib_dirs = self.compiler.library_dirs [
'/lib64', '/usr/lib64',
'/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu',
]
(отсутствует файл /usr/lib/x86_64-linux-gnu)
Комментарии:
1. Спасибо, tMC — решаемая — я опубликую шаги для других новичков, сталкивающихся с этой проблемой.
2. Спасибо за этот ответ, я боролся уже несколько недель! Примечание для ленивых людей в 32-разрядных системах, каталог:
/usr/lib/i386-linux-gnu
вместо x86_64..
Ответ №2:
Спасибо — Plone установлен успешно.
Следование этому и этому привело меня к этому исправлению для setup.py
Ради других новичков — вот как применить исправление:
Просмотрите необработанный текст исправления здесь и скопируйте из строки, непосредственно следующей (не включая) за diff...
строкой, до конца. Скопируйте в текстовый файл. Для этого примера предположим, что вы назвали этот файл /tmp/patch.txt
Перейдите в корневой каталог распакованных файлов унифицированного установщика, а затем выполните следующее:
cd packages
tar xjf Python-2.6.6.tar.bz2
rm Python-2.6.6.tar.bz2
cd Python-2.6.6
patch < /tmp/patch.txt
Если исправление сработало, вы должны увидеть:
patching file setup.py
Hunk #1 succeeded at 354 (offset 15 lines).
Затем вам нужно снова запустить tar и bzip2 пакет Python:
cd ..
tar cjf Python-2.6.6.tar.bz2 Python-2.6.6
rm -r Python-2.6.6
Теперь запустите установщик еще раз, и он сможет найти модули, необходимые для сборки python2.6, включенные в унифицированный установщик.
Ответ №3:
Указание унифицированному установщику создать свой собственный zlib работает: ./install.sh --libz=yes zeo
Ответ №4:
Обратите внимание, что если в вашей системе уже есть приемлемый Python (или вы можете его установить), вы можете использовать «—with-python=/path/to/Python-2.6» на install.sh командная строка.
Ответ №5:
У меня все работает нормально, но затем я собрал его в системе maverick, затем обновил до natty.
Предварительные требования, которые у меня есть, выглядят необходимыми для вас:
zlib1g-dev (which you have)
python-gdbm
libgdbm3
libsqlite3-0 (hard to imagine you would not have that)
python-tk
bsddb и sunaudio являются частью системного python2.6 — вы могли бы попробовать создать с этим ( aptitude install python2.6
, при необходимости)
Комментарии:
1. Я не верю, что у maverick была настройка multilib — с кортежем arch в пути к библиотеке. Вы можете протестировать, загрузив исходный код python 2.7.1 и посмотреть, будет ли он компилироваться со всеми модулями, для которых у вас есть файлы разработки.
2. @tMC afaik, для Plone требуется 2.6, а не 2.7, но унифицированный установщик в любом случае включает Python2.6, и метод установки nickyspag использовал бы python, включенный в Plone.
3. @auspex python2.6 будет так же не осведомлен о путях multilib, как и python 2.7. Найдите setup.py в прилагаемой версии python отредактируйте его, чтобы включить правильные пути, и повторите попытку.
4. @tMC Я понимаю вашу точку зрения, но если он просто использует системный python2.6, ему вообще не нужно компилировать python
5. Посмотрите на его вывод
Failed to find the necessary bits to build these modules: _bsddb _sqlite3 _tkinter bsddb185 dbm gdbm sunaudiodev zlib To find the necessary bits, look in setup.py in detect_modules() for the module's name.
, который пытается создать версия python. в нем упоминается setup.py в выходных данных