2011-09-05 72 views
0

我想我的共享服務器上的easy_install Python包稱爲「LXML」。 Howeaver,我不得不在本地做,因爲我不能在我的在線服務器上分叉進程。錯誤與Python包:「錯誤的ELF類:ELFCLASS64」(在32位編譯64位系統上?)

  1. 我的prod和dev服務器都是ubuntu64,但只有我的離線dev有python-64,而我的prod有32bit。
  2. Python版本2.6.6。
  3. 我使用的virtualenv

所以我建立它在我的dev的服務器(使用PIP),然後,我只是(通過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

那麼,一點是:有沒有辦法在32位的easy_install在64位Python包系統?

TNX提前任何幫助! 加布裏埃萊

+0

甲readelf確認本人的概率: '$ readelf -h ./etree.so ELF部首: 魔術:1408米45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 類別:ELF64 數據: 2的補碼,小尾 版本:1(當前) OS/ABI:UNIX - 系統V ABI版本:0 類型:DYN(共享對象文件) 機:Advanced Micro Devices公司X86-64' –

回答

2

有了easy_install的,您可以指定要安裝的確切包。如果軟件包的32位版本可用,您可以下載它,然後執行:easy_install ./lxml-2.3-py-2.6-linux_i386.egg。但是我認爲對於lxml,沒有針對linux 32位和您的python版本的預編譯版本。

在此link你可以找到如何建立一個64位系統上的32位Python模塊。但是你需要一個32位版本的python及其所有的依賴項,這樣你才能在你當前的開發環境中工作(你提到你有一個64位版本)。

強烈建議有開發環境儘可能接近生產環境,以便部署到生產的時候,你不覺得「驚喜」。僅僅因爲操作系統的差異,有時不可能有完全相同的環境。這是我們打包BitNami Django Stack和虛擬設備(我是BitNami開發人員)的原因之一。該堆棧爲開發人員提供了一個獨立的多平臺軟件包。它也完全獨立於用戶系統,不會干擾系統中的其他任何功能。在 堆棧頂部進行開發並將其用於生產,可確保您在兩個系統中都具有相同的環境。無論如何,你已經有了一個生產服務器,如果你不能選擇使用堆棧(你需要遷移你的應用程序),我建議你使用32位版本的Python和依賴關係來設置你的開發環境。

+0

TNX!這真是一個有說服力的答案! :) –