Python:PIL/_imaging.so:ELF头无效
我正在本地机器上使用virtualenv运行Python2.7,一切正常。当我将“站点包”传输到生产服务器时,我得到以下错误:Python:PIL/_imaging.so:ELF头无效,python,web,python-imaging-library,virtualenv,pillow,Python,Web,Python Imaging Library,Virtualenv,Pillow,我正在本地机器上使用virtualenv运行Python2.7,一切正常。当我将“站点包”传输到生产服务器时,我得到以下错误: PIL/_imaging.so: invalid ELF header 这种情况发生在发现的枕头2.5.3 pypi包上 我运行的是OSX,而我的生产服务器运行的是Debian。我怀疑操作系统的差异可能导致了这个问题,但我不确定。我不知道如何解决这个问题。有人能帮忙吗 注意:我无法将软件包直接安装到我的生产服务器,因此我必须直接上载它们才能使用它们。在当前的虚拟环境中
PIL/_imaging.so: invalid ELF header
这种情况发生在发现的枕头2.5.3 pypi包上
我运行的是OSX,而我的生产服务器运行的是Debian。我怀疑操作系统的差异可能导致了这个问题,但我不确定。我不知道如何解决这个问题。有人能帮忙吗
注意:我无法将软件包直接安装到我的生产服务器,因此我必须直接上载它们才能使用它们。在当前的虚拟环境中,执行以下命令
pip freeze > requirements.txt
将此requirements.txt
文件复制到服务器
创建新的virtualenvironment(删除之前使用的那个)
激活虚拟环境,然后键入pip安装-r requirements.txt
现在,这些库将正确安装并准确构建
如果您看到PIL的错误,请执行以下命令:
sudo apt-get install build-essential python-dev
sudo apt-get build-dep python-imaging
虚拟环境用于在当前机器上隔离Python;它们不用于创建可移植环境。好处是可以使用不同版本的Python包,而无需修改系统Python安装
使用虚拟环境不需要超级用户权限;因此,即使您不是“root”,也可以安装软件包
然而,当软件包从网上下载时,它确实需要互联网接入。如果您的服务器无法访问Internet,请返回mac,从虚拟环境执行以下操作:
pip install basket
这将安装一个小型实用程序,允许您下载软件包,但不安装它们。非常适合保存可移动到其他机器的包的本地存档
安装后,按照文档中列出的步骤进行操作:
basket init
pip freeze>requirements.txt
awk-F'=''{print$1}requirements.txt | basket下载
~/.basket
接下来,将此目录复制到服务器,然后从virtualenvironment运行以下命令
pip安装——无索引-f/path/to/basket-r requirements.txt
您不能仅将站点软件包
传输到具有不同体系结构的另一台服务器。改为重建虚拟环境。OSX处理共享库的方式与Linux完全不同。有没有一种不用命令行就可以做到这一点的方法?不幸的是,我所在的共享主机没有为python包安装提供本机实用程序。