用pyenv运行mod_wsgi

时间:2018-03-12 22:08:27

标签: python apache mod-wsgi pyenv

我试图在Apache服务器上运行python Web应用程序。我安装了mod_wsgi: sudo apt-get install libapache2-mod-wsgi

这是我的网站配置文件:

<virtualhost *:80>
    ServerName 192.168.60.144

    WSGIDaemonProcess myapp.dev processes=1 threads=1 python-home="/home/user/.pyenv/versions/3.6.1" python-path="/home/user/API" home='/home/user/API'
    WSGIProcessGroup myapp.dev
    WSGIScriptAlias /  /home/user/API/config_files/myservice.wsgi.py

    <Directory /home/user/API>
        Order allow,deny
        Allow from all
    </Directory>

    DocumentRoot /home/user/API/myservice/testdir
    <Directory />
         AllowOverride None
          Require all granted
     </Directory>

</virtualhost>

但是,在尝试访问Web应用程序时,我得到了#34;内部服务器错误&#34;。这是日志中的错误:

  

[Mon Mar 12 13:34:04.054636 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi(pid = 6762):目标WSGI脚本&#39; / home /user/API/config_files/myservice.wsgi.py'无法作为Python模块加载。   [Mon Mar 12 13:34:04.054665 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi(pid = 6762):处​​理WSGI脚本&#39; / home /时发生异常用户/ API / CONFIG_FILES / myservice.wsgi.py&#39 ;.   [Mon Mar 12 13:34:04.054693 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] Traceback(最近一次调用最后一次):   [Mon Mar 12 13:34:04.054717 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] File&#34; /home/user/API/config_files/myservice.wsgi.py& #34;,第6行,in   [星期一3月12日13:34:04.054752 2018] [wsgi:错误] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438]来自pathlib导入路径   [Mon Mar 12 13:34:04.054775 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] ImportError:没有名为pathlib的模块

我检查了pyenv python安装,它安装了pathlib模块。这意味着可能没有使用正确版本的Python。如何查看正在使用的Python版本?我是否错误地设置了python-home属性?

1 个答案:

答案 0 :(得分:1)

您不能将系统打包版本的mod_wsgi与pyenv环境一起使用。必须为正在使用的特定Python安装/版本编译mod_wsgi。使用pyenv时,它是一个单独的Python安装,而不是正在使用的系统Python。您应该使用pip install方法安装为pyenv创建的Python安装编译的mod_wsgi。确保在pyenv安装Python时启用了共享库。

IOW,卸载mod_wsgi的系统打包版本,然后使用pip install方法安装mod_wsgi并配置Apache使用它。参见: