Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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
使用libjpeg的Python图像库错误_Python_Django_Python Imaging Library_Libjpeg - Fatal编程技术网

使用libjpeg的Python图像库错误

使用libjpeg的Python图像库错误,python,django,python-imaging-library,libjpeg,Python,Django,Python Imaging Library,Libjpeg,我有一个centos 5,正在尝试启动Python映像库。我安装了libjpeg、libjpeg-devel等,但仍然无法将jpeg图像上载到我的django站点 我已多次重新安装PIL。通过PIP、easy_install2.6和手动构建。每次它显示JPEG支持可用-但不允许我上传JPEG文件。它将接受gif和png格式 我正在运行python2.6,PIL 1.1.7 --------------------------------------------------------------

我有一个centos 5,正在尝试启动Python映像库。我安装了libjpeg、libjpeg-devel等,但仍然无法将jpeg图像上载到我的django站点

我已多次重新安装PIL。通过PIP、easy_install2.6和手动构建。每次它显示JPEG支持可用-但不允许我上传JPEG文件。它将接受gif和png格式

我正在运行python2.6,PIL 1.1.7

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.6.7 (r267:88850, Jul 28 2011, 12:07:21)
              [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
有什么想法吗


谢谢

您的models.py文件中有什么?在数据库中需要类似的内容

img = models.ImageField("Foo")
其中Foo是存储上传图像的地方。 确保在重新安装PIL之前安装了libjpeg-devel,如果不起作用,请运行

easy_install pil | tee pil.log

并将其张贴在此处,以便我们可以进一步帮助您。

确保您没有安装正在使用的其他版本的libjpeg。要检查它,请尝试

lsof | grep libjpeg

我也遇到了同样的问题,并一步一步地记录了我的安装过程。它相当长,你可以在上面找到

它将在以下方面帮助您:

 $ python setup.py clean
 $ python setup.py build_ext -i
  • 工作副本
  • 德扬戈
  • 皮尔
  • 成像
  • libjpeg
  • mysql
  • 吉特
  • 阿帕奇
  • mod_wsgi
  • 易于安装
  • 皮普
  • django图像套件
  • CentOS 5.4上的cdn存储
安装Apache、MySQL、SQLite和其他开发人员软件包

yum install httpd-devel mysql mysql-server
yum install mysql-client mysql-devel
yum install apr-devel sqlite3 sqlite-devel
yum install libjpeg libpng gcc make autoconf
yum install libxslt gettext zlib-devel
yum groupinstall "GNOME Desktop Environment"
yum groupinstall "Development Tools"
本教程假设您在生产环境中使用MySQL,也可以使用SQLite进行开发。如果您正在使用另一个数据库,如PostgreSQL,则应立即安装这些文件。此外,请注意,这些并不是您的Web服务器需要的唯一软件包,这应该被视为使您的django应用程序工作的最低要求

添加新用户

groupadd webmaster
useradd -c "username"  -g webmaster -m -s /bin/bash username
passwd username
passw0rd
visudo
在第77行附近,该行显示“root ALL=(ALL)ALL add 用户名全部=(全部)全部

从这里,您可以更改为您的用户,使根帐户保持原样。 如果发现某些项不希望运行,则应使用sudo命令

沿着Python2.4的一侧安装Python2.6

让Python 2.6在CentOS 5.4上运行而不破坏任何功能的诀窍是将其安装在默认Python 2.4的旁边。不要尝试更新默认Python 2.4,因为重要的CentOS模块需要2.4。为此,您将配置Python以安装在/opt/python2.6中。在执行此步骤之前,请确保e yum安装了sqlite-devel,因为在编译python时,python将查找sqlite头文件,以便为其构建模块

wget http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz
tar -zxvf Python-2.6.4.tgz
cd Python-2.6.4
./configure --prefix=/opt/python2.6 --with-threads --enable-shared --with-zlib=/usr/include
make
make install
cd ~
在/opt/Python2.6中安装Python之后,您需要创建指向它的符号链接

ln -s /opt/python2.6/lib/libpython2.6.so /usr/lib
ln -s /opt/python2.6/lib/libpython2.6.so.1.0 /usr/lib
ln -s /opt/python2.6/bin/python /usr/local/bin/python
ln -s /opt/python2.6/bin/python /usr/bin/python2.6
ln -s /opt/python2.6/lib/python2.6.so /opt/python2.6/lib/python2.6/config/
运行ldconfig以更新到共享库的链接,然后检查python版本以确保现在可以使用2.6。此外,使用yum测试python 2.4和2.6之间是否存在任何冲突。如果确实存在问题,请仔细检查符号链接,确保与/usr/bin/python或/u没有冲突sr/bin/python2.4

/sbin/ldconfig -v
python -V
yum info httpd
安装setuptools、MySQL扩展和Django 1.1

如果您以前安装过setuptools,但需要在2.6版中再次安装,以便将包安装在/opt/python2.6中。为了将MySQL与Django一起使用,您需要下载、构建并安装它的扩展

wget http://bit.ly/6E0DNN 
chmod u+x setuptools-0.6c11-py2.6.egg
./setuptools-0.6c11-py2.6.egg --prefix=/opt/python2.6

wget http://bit.ly/6j4uID
tar -zxvf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py build
python setup.py install
cd ..

wget http://www.djangoproject.com/download/1.1.1/tarball/
tar -zxvf Django-1.1.1.tar.gz
cd Django-1.1.1
python setup.py build
python setup.py install
cd ..
安装和安装mod_wsgi

Django社区的大多数人都使用wsgi作为与Web服务器的接口方式。我也更喜欢使用它,因为它速度快且易于安装。本教程将不介绍如何将应用程序设置为使用wsgi(不过,最后我将给出一个示例),但django项目对此有一个很好的教程。请注意,此步骤非常重要。您可能以前使用yum安装过mod_wsgi,但您需要下载它并使用新的2.6构建它,以便它与您的应用程序配合使用

wget http://modwsgi.googlecode.com/files/mod_wsgi-2.8.tar.gz 
tar -zxvf mod_wsgi-2.8.tar.gz
cd mod_wsgi-2.8
./configure --with-python=/usr/local/bin/python
make
make install
cd ..
然后,您需要编辑Apache httpd.conf以加载mod_wsgi模块

vi /etc/httpd/conf/httpd.conf
LoadModule wsgi_module  /usr/lib64/httpd/modules/mod_wsgi.so
line 787
AddHandler wsgi-script .wsgi
确保加载模块后Apache重新启动

/etc/init.d/httpd restart
为虚拟主机创建单独的目录

我喜欢把我所有的虚拟主机放在一个单独的目录中

cd /etc/httpd/conf
mkdir vhosts
cd vhosts
vi mysite.com.conf

<VirtualHost 127.0.0.1>
    ServerName localhost

    ErrorLog /www/django_test1/mysite/logs/error_log
    CustomLog /www/django_test1/mysite/logs/access_log combined

    UseCanonicalName Off

    Alias /media/ "/www/django_test1/mysite/media/"
    <Directory "/www/django_test1/mysite/media">
        Order allow,deny
        Options Indexes
        Allow from all
        IndexOptions FancyIndexing
    </Directory>

    Alias /mediaadmin/ "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/"
    <Directory "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media">
        Order allow,deny
        Options Indexes
        Allow from all
        IndexOptions FancyIndexing
    </Directory>

    WSGIScriptAlias / /www/django_test1/mysite.wsgi
    WSGIDaemonProcess mysite processes=7 threads=1 display-name=%{GROUP}
    WSGIProcessGroup mysite
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
保存文件

创建一个.python目录

cd /etc/httpd/conf
mkdir vhosts
cd vhosts
vi mysite.com.conf

<VirtualHost 127.0.0.1>
    ServerName localhost

    ErrorLog /www/django_test1/mysite/logs/error_log
    CustomLog /www/django_test1/mysite/logs/access_log combined

    UseCanonicalName Off

    Alias /media/ "/www/django_test1/mysite/media/"
    <Directory "/www/django_test1/mysite/media">
        Order allow,deny
        Options Indexes
        Allow from all
        IndexOptions FancyIndexing
    </Directory>

    Alias /mediaadmin/ "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/"
    <Directory "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media">
        Order allow,deny
        Options Indexes
        Allow from all
        IndexOptions FancyIndexing
    </Directory>

    WSGIScriptAlias / /www/django_test1/mysite.wsgi
    WSGIDaemonProcess mysite processes=7 threads=1 display-name=%{GROUP}
    WSGIProcessGroup mysite
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
在mysite

mkdir .python-eggs
chmod -R 777 .python-eggs

启动mysql服务器

/etc/rc.d/init.d/mysqld start
在CENTOS上安装PIL

http://athenageek.wordpress.com/2009/06/09/easy_install-pil-not-so-easy/
安装PIP以使用图像处理

/opt/python2.6/bin/easy_install-2.6 pip

/opt/python2.6/bin/pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz
安装GIT

http://www.bitsandpix.com/entry/git-installing-git-on-centos-5/

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

yum install git
使用其他用户配置MySQL

mysql --user=root mysql
CREATE USER 'webdev'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'webdev'@'localhost'
IDENTIFIED BY 'password' WITH GRANT OPTION;
创建Django项目

/opt/python2.6/bin/django-admin.py startproject mysite
在项目中创建一个日志目录,因为mod_wsgi和apache需要这个目录

cd mysite
mkdir logs
符号链接您的管理媒体文件夹

mkdir media
chmod -R 777 media
mkdir mediaadmin

ln -s /opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media /www/django_test1/mysite/mediaadmin/
配置/etc/httpd/conf/httpd.conf文件以包含项目基础设置

ServerAdmin admin@appelvm01.centos
HostName appelvm01.centos

ServerName 127.0.0.1

DocumentRoot "/www/django_test1/mysite"

<Directory "/www/django_test1/mysite">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
将WSGISocketPrefix添加到httpd.conf文件末尾

WSGISocketPrefix /var/run/wsgi
确保主机名与apacheconf/etc/httpd/conf/httpd.conf中的主机名相同 否则通过运行更改

hostname "new_name"
授予权限

chcon -R -h -t httpd_sys_content_t /www/django_test1/mysite
我发现这不够好,所以我不得不关掉SElinux

vi /etc/selinux/config
设置

根据一篇博客,删除你的-索引

配置防火墙

sudo vi /etc/sysconfig/iptables-config
确保以下变量设置为“是”: IPTABLES\u SAVE\u ON\u STOP=“是” IPTABLES\u在重新启动时保存=“是”

打开Web端口:

sudo /sbin/iptables -I INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT
sudo /sbin/iptables -I INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 443 -j ACCEPT
使用以下命令重新启动iptables: sudo/sbin/service iptables停止 sudo/sbin/service iptables启动 确保规则仍在。请尝试重新启动服务器,以确保设置已启动

确保MySQL和Apache在重启后始终处于打开状态

/sbin/chkconfig --add httpd
/sbin/chkconfig --level 2345 httpd on
/sbin/chkconfig --list httpd

/sbin/chkconfig --add mysqld
/sbin/chkconfig --level 2345 mysqld on
/sbin/chkconfig --list mysqld
通过easy_Install向南安装,以方便数据库迁移

/opt/python2.6/bin/easy_install-2.6 South
为机架空间/CDN存储安装Django cumuls

/opt/python2.6/bin/pip install django-cumulus

/opt/python2.6/bin/pip install -r http://bitbucket.org/richleland/django-cumulus/raw/0.3.3/requirements.txt

/opt/python2.6/bin/easy_install-2.6 django-imagekit
您现在应该能够转到您的服务器ip地址,您应该会看到欢迎屏幕

从这里开始,你可以开始开发你的应用程序,你应该能够启用你的管理员自动发现并设置URL,这样你就可以访问管理部分。

这对我很有用

并在安装完所有p
/opt/python2.6/bin/easy_install-2.6 South
/opt/python2.6/bin/pip install django-cumulus

/opt/python2.6/bin/pip install -r http://bitbucket.org/richleland/django-cumulus/raw/0.3.3/requirements.txt

/opt/python2.6/bin/easy_install-2.6 django-imagekit
 $ python setup.py clean
 $ python setup.py build_ext -i