使用mod_wsgi在Apache上运行Django时出现Python链接问题:找不到符号__cg_jpeg_resync_to_restart

时间:2011-07-25 00:34:18

标签: python django apache mod-wsgi dynamic-linking

当我尝试在apache上运行我的django站点时出现此错误。该站点适用于开发服务器:

ViewDoesNotExist at / 
Could not import myproject.modulename.views. Error was: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_tkinter.so, 2): Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /Applications/MAMP/Library/lib/libjpeg.8.dylib

我不知道如何解决这个问题。其他django站点在这个apache安装上工作。该目录位于我的apache.conf文件中指定的路径上(参见帖子底部)。

错误消息中引用的三个文件位于指示的位置。

  1. _tkinter.so - /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_tkinter.so

  2. ImageIO - /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO

  3. libjpeg.8.dylib - /Applications/MAMP/Library/lib/libjpeg.8.dylib

  4. 我不确定__cg_jpeg_resync_to_restart是什么。

    以下是我在试图找出错误消息的含义时提出的原始消息。感谢sacabuche指出我正确的方向。

    我想让一个Django站点在apache上运行。它适用于django开发服务器,但是当我尝试使用mod_wsgi在apache上运行它时,我收到此错误。我知道mod_wsgi有效,因为我在我的mamp开发服务器上有一个小型试用站点(这是这个stie的缩小版本)。我通过这篇文章在其他人的帮助下管理的壮举:Django/mod_wsgi and PHP as Virtual Hosts on same Apache Server using MAMP

    新站点使用不同的数据库,现在位于localhost根目录下,但是非常相似,所以这个错误令我感到困惑。

    这是我的apache conf的代码(注意:php网站有效,如果我将WSGIDaemonProcess重定向到旧网站,它加载没有问题):

        ServerName localhost     UseCanonicalName Off     DocumentRoot“/ Applications / MAMP / htdocs”

    Alias /phpsite /Applications/MAMP/htdocs/phpsite
        <Directory "/Applications/MAMP/htdocs/phpsite">
            Options Indexes FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    
        WSGIDaemonProcess site1 display-name=%{GROUP}
        WSGIProcessGroup site1
        Alias /media/ /Applications/MAMP/htdocs/media/
        <Directory /Applications/MAMP/htdocs/media>
            Options ExecCGI 
            Order deny,allow
            Allow from all
        </Directory>
        WSGIScriptAlias / /Users/sequoia/djangoprojects/myproject/apache/django.wsgi
        <Directory /Users/sequoia/djangoprojects/myproject/apache>
            Order deny,allow
            Allow from all
        </Directory>
    </VirtualHost>
    

    感谢。

2 个答案:

答案 0 :(得分:0)

好吧,似乎符号链接坏了,所以我看了,我发现了this forum

中的内容

删除"<installation directory>/lib"

中的符号链接“libpng.dylib”和“libjpeg.dylib”

为正确的库创建新的符号链接。

ln -s /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPNG.dylib /Applications/MAMP/Library/lib/libPNG.dylib

ln -s /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib /Applications/MAMP/Library/lib/libJPEG.dylib

我这里没有Mac,但首先我会验证符号链接的来源存在,我希望这可以解决你的问题。

答案 1 :(得分:0)

您是否错过了选项声明中的 + 或 - 符号? 语句示例: 选项 -Indexes +FollowSymLinks