Ошибка в пакете Python: «неправильный класс ELF: ELFCLASS64» (компиляция в 32-битной системе на 64-битной системе?) - PullRequest
0 голосов
/ 05 сентября 2011

Я пытаюсь легко установить пакет Python с именем "lxml" на моем общем сервере.Однако мне пришлось сделать это локально, так как я не могу разветвлять процессы на своем онлайн-сервере.

  1. И мой сервер prod и dev - Ubuntu64, но только мой автономный разработчик имел python-64, а мой prod - 32-битный.
  2. Я использую virtualenv

Итак, я собрал его на своем dev-сервере (используя pip), а затем просто загрузил на свой prod-сервер (через ftp).Но я получил эту ошибку:

django.core.exceptions.ImproperlyConfigured: Error importing middleware pootle_misc.middleware.siteconfig: "/accounts/gabriobald/www/translate.9thcircle.it/lib/python2.6/site-packages/lxml/etree.so: wrong ELF class: ELFCLASS64"

Я полагаю, это из-за связанной библиотеки etree.so

Итак, есть вопрос: есть ли способ easy_install пакета Python в 32 битв 64-битной системе?

1 Ответ

2 голосов
/ 14 сентября 2011

С помощью easy_install вы можете указать, какой именно пакет вы хотите установить.Если будет доступна 32-битная версия пакета, вы можете скачать ее и выполнить: easy_install ./lxml-2.3-py-2.6-linux_i386.egg.Однако я думаю, что для lxml нет предкомпилированной версии для linux 32bits и вашей версии python.

В этой ссылке вы можете найти, как собрать 32-битный модуль python насистема битов.Но вам понадобится 32-битная версия python и все его зависимости, чтобы она не работала в вашей текущей среде разработки (вы упомянули, что у вас есть 64-битная версия).

Настоятельно рекомендуется иметьСреда разработки максимально приближена к производственной среде, поэтому вы не найдете «сюрпризов» при развертывании в производство.Иногда невозможно иметь точно такую ​​же среду только из-за различий в операционной системе.Это одна из причин, по которой мы упаковываем BitNami Django Stack и виртуальное устройство (я разработчик BitNami).Стек представляет собой автономный многоплатформенный пакет для разработчиков.Также он полностью независим от пользовательской системы и не будет мешать чему-либо еще в системе.Разработка на вершине стека и использование его для производства гарантирует вам, что у вас будет одинаковая среда в обеих системах.В любом случае у вас уже есть рабочий сервер, и если использование стека не подходит для вас (вам необходимо перенести ваши приложения), я бы порекомендовал вам установить свою среду разработки также с 32-битной версией python и зависимостями.

...