在移动python金字塔应用程序时,DistributionNotFound?

时间:2017-07-27 14:58:56

标签: python mod-wsgi pyramid

如何正确安全地移动python金字塔应用程序? 见下文,我在评论中反馈后更新了细节。

我首先使用以下命令准备环境:

  

virtualenv - 可定位的ENV

之后,该应用程序仍然正常工作。 然后我将python应用程序移动到另一个目录,但得到以下错误:

[Thu Jul 27 16:09:08.884534 2017] [wsgi:error] [pid 14775] [remote 185.54.183.194:58084] mod_wsgi (pid=14775): Target WSGI script '/home/develop/web/checklist/prod/backend/pyramid.wsgi' cannot be loaded as Python module.
[Thu Jul 27 16:09:08.884660 2017] [wsgi:error] [pid 14775] [remote 185.54.183.194:58084] mod_wsgi (pid=14775): Exception occurred processing WSGI script '/home/develop/web/checklist/prod/backend/pyramid.wsgi'.

 .......

 [Thu Jul 27 16:09:08.886634 2017] [wsgi:error] [pid 14775] [remote
 185.54.183.194:58084] pkg_resources.DistributionNotFound: The 'checklist' distribution was not found and is required by the application

(清单是python应用程序)。 我将WSGIDaemonProcess和WSGIScriptAlias的apache配置中的路径更改为新位置。 我更改了WSGIDaemonProcess中使用的pyramid.ini文件中的路径。 我的apache配置:

    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    WSGIDaemonProcess checklistTest user=apache group=apache threads=4 python-path=/home/develop/web/test/checklist/backend:/home/develop/web/test/checklist/backend/env/lib/python3.4/site-packages
    WSGIScriptAlias /bdh-checklist-test /home/develop/web/test/checklist/backend/pyramid.wsgi
    <Directory /home/develop/web/test/checklist/backend>
      WSGIProcessGroup checklistTest
      Require all granted
    </Directory>

我在Graham的反馈后更新了上面的配置。我使用与python app(版本3.4)相同的python版本编译mod_wsgi。但是,我仍然无法使用python-home属性,它会导致超时错误(使用可重定位环境):

  

从守护程序进程读取响应头时超时   'checklistTest':

如果我使用python-home,上面的DaemonProcess条目如下所示:

WSGIDaemonProcess checklistTest user=apache group=apache threads=4 python-home=/home/develop/web/test/checklist/backend/env/lib/python3.4

如何解决这个问题? 我为什么要使用python-home而不是python-path? 我必须在python-app属性中包含应用程序本身的路径,否则apache日志将包含一个错误,指出它无法找到应用程序分发。

0 个答案:

没有答案