2011-09-05 248 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!这真是一个有说服力的答案! :) –