首页 > 解决方案 > 启动乘客时缺少模块错误

问题描述

我正在使用在服务器上passenger部署一个。Flask REST APIapache

这是我的Apache conf文件:

<VirtualHost *:80>
    ServerName demo.app.com

    DocumentRoot /var/www/demo.app.com/backend # Backend is my venv
    PassengerAppRoot /var/www/demo.app.com/backend/public # Public is where my code lives

    PassengerPython /usr/bin/python3.8
    PassengerAppType wsgi
    PassengerStartupFile passenger_wsgi.py

    <Directory /var/www/demo.worxmanager.com/backend>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>

所以我进入后端文件夹(venv 容器)并执行以下命令:

. ./bin/activate

pip3 install -r ./requirements.txt

一切安装成功。我进入我的内部public folder,并在里面app.py编写以下代码:

from flask import Flask
#I have more imports and routes, but didn't think they are relevant to my error.

@app.route('/api/user/register', methods=['POST'])
def register():
    return user.register(request)

if __name__ == '__main__':
    app.run()

最后,这是我的passenger_wsgi.py文件:

from app import app as application

当我尝试run它或转到时demo.app.com,我收到以下错误:

App 12676 output: /usr/share/passenger/helper-scripts/wsgi-loader.py:26: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
App 12676 output:   import sys, os, re, imp, threading, signal, traceback, socket, select, struct, logging, errno
App 12676 output: Traceback (most recent call last):
App 12676 output:   File "/usr/share/passenger/helper-scripts/wsgi-loader.py", line 369, in <module>
App 12676 output:     app_module = load_app()
App 12676 output:   File "/usr/share/passenger/helper-scripts/wsgi-loader.py", line 76, in load_app
App 12676 output:     return imp.load_source('passenger_wsgi', startup_file)
App 12676 output:   File "/usr/lib/python3.8/imp.py", line 171, in load_source
App 12676 output:     module = _load(spec)
App 12676 output:   File "<frozen importlib._bootstrap>", line 702, in _load
App 12676 output:   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
App 12676 output:   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
App 12676 output:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
App 12676 output:   File "/var/www/demo.app.com/backend/public/passenger_wsgi.py", line 1, in <module>
App 12676 output:     from app import app as application
App 12676 output:   File "/var/www/demo.app.com/backend/public/app.py", line 1, in <module>
App 12676 output:     from Flabstraction.connect import *
App 12676 output:   File "/var/www/demo.app.com/backend/public/Flabstraction/connect.py", line 1, in <module>
App 12676 output:     from Flabstraction.Flabstraction import FlaskCFG, Pysqlalchemy
App 12676 output:   File "/var/www/demo.app.com/backend/public/Flabstraction/Flabstraction.py", line 2, in <module>
App 12676 output:     from flask import Flask
App 12676 output: ModuleNotFoundError: No module named 'flask'
[ E 2020-09-25 12:51:05.3383 12637/Tj age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /var/www/demo.app.com/backend/public: The application process exited prematurely.
  Error ID: 3611ba4d
  Error details saved to: /tmp/passenger-error-6RDF9C.html

[ E 2020-09-25 12:51:05.3535 12637/T9 age/Cor/Con/CheckoutSession.cpp:276 ]: [Client 1-1] Cannot checkout session because a spawning error occurred. The identifier of the error is 3611ba4d. Please see earlier logs for details about the error.

这很奇怪,因为我已经在系统本身和系统本身requirements上都安装了所有这些。venv

标签: apachepassengerpassenger-apache

解决方案


推荐阅读