apache - 启动乘客时缺少模块错误
问题描述
我正在使用在服务器上passenger
部署一个。Flask REST API
apache
这是我的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
解决方案
推荐阅读
- php - Laravel 5.5.* 会话存储主机
- python - 如何根据它们的值组合两个字典?
- sql - 提高多级自连接的类图查询的 Postgres 性能(与 Neo4j 比较)
- grails - 无法在没有索引的情况下将列表绑定到命令对象
- javascript - 如何使用设备的 12/24 小时时间设置在移动网站上格式化时间?
- hyperledger-fabric - 作曲家参加织物
- r - R编程 - 顺序函数无法与包含一位和两位数字变量的列正确工作
- html - 使用内联块与内联,两者似乎都没有达到我的预期
- r - R中的writeRaster函数自动设置(不需要的)最大值,我可以将最大值设置为null吗?
- assembly - 难以弄清楚对汇编函数的调用返回什么