Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:PIL/_imaging.so:ELF头无效_Python_Web_Python Imaging Library_Virtualenv_Pillow - Fatal编程技术网

Python:PIL/_imaging.so:ELF头无效

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。我怀疑操作系统的差异可能导致了这个问题,但我不确定。我不知道如何解决这个问题。有人能帮忙吗 注意:我无法将软件包直接安装到我的生产服务器,因此我必须直接上载它们才能使用它们。在当前的虚拟环境中

我正在本地机器上使用virtualenv运行Python2.7,一切正常。当我将“站点包”传输到生产服务器时,我得到以下错误:

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下载
  • 这将从requirements.txt文件下载所有包到
    ~/.basket

    接下来,将此目录复制到服务器,然后从virtualenvironment运行以下命令


    pip安装——无索引-f/path/to/basket-r requirements.txt

    您不能仅将
    站点软件包
    传输到具有不同体系结构的另一台服务器。改为重建虚拟环境。OSX处理共享库的方式与Linux完全不同。有没有一种不用命令行就可以做到这一点的方法?不幸的是,我所在的共享主机没有为python包安装提供本机实用程序。