运行 IBM i 上的 Flask 应用程序导致错误 "Can't start new thread"
Running a Flask app on an IBM i results in error "Can't start new thread"
我在工作中使用 IBM i,可以成功地 运行 基本 Python 脚本,但不能 运行 Flask 应用程序。当我 运行 该应用程序似乎启动时,但在我的浏览器中浏览到该应用程序时,该应用程序会抛出有关无法启动新线程的错误。我猜这与 IBM i 有关,而不是 Python 或 Flask。
from flask import Flask
import ibm_db_dbi as db2
app = Flask(__name__)
@app.route('/<username>')
def get_email(username):
return f'Hello {username}!'
我运行这个来自Qshell的应用程序是这样的:
export PATH=/QOpenSys/pkgs/bin:$PATH
export FLASK_APP=index.py
flask run --host=0.0.0.0
这是控制台上的输出:
当我浏览到路线时,这是我得到的错误:
我尝试了 运行使用 Bottle https://bottlepy.org/docs/dev/ 的另一个示例,这个似乎有效。我假设 Bottle 没有尝试启动一个新线程。理想情况下,我希望它能与 Flask 一起使用。
你没有提到你是哪个 Python 运行,希望推荐的 3.6 通过 yum
安装。
但是听起来你没有启用多线程...
QIBM_MULTI_THREADED (Start multi-thread capable processes) This
variable determines if processes started by qsh can create multiple
threads. When the value of the variable is "Y", all child processes
started by qsh can start threads. The default value is "N".
Change Environment Variable (CHGENVVAR)
Type choices, press Enter.
Environment variable . . . . . . > QIBM_MULTI_THREADED
New value . . . . . . . . . . . Y
我在工作中使用 IBM i,可以成功地 运行 基本 Python 脚本,但不能 运行 Flask 应用程序。当我 运行 该应用程序似乎启动时,但在我的浏览器中浏览到该应用程序时,该应用程序会抛出有关无法启动新线程的错误。我猜这与 IBM i 有关,而不是 Python 或 Flask。
from flask import Flask
import ibm_db_dbi as db2
app = Flask(__name__)
@app.route('/<username>')
def get_email(username):
return f'Hello {username}!'
我运行这个来自Qshell的应用程序是这样的:
export PATH=/QOpenSys/pkgs/bin:$PATH
export FLASK_APP=index.py
flask run --host=0.0.0.0
这是控制台上的输出:
当我浏览到路线时,这是我得到的错误:
我尝试了 运行使用 Bottle https://bottlepy.org/docs/dev/ 的另一个示例,这个似乎有效。我假设 Bottle 没有尝试启动一个新线程。理想情况下,我希望它能与 Flask 一起使用。
你没有提到你是哪个 Python 运行,希望推荐的 3.6 通过 yum
安装。
但是听起来你没有启用多线程...
QIBM_MULTI_THREADED (Start multi-thread capable processes) This variable determines if processes started by qsh can create multiple threads. When the value of the variable is "Y", all child processes started by qsh can start threads. The default value is "N".
Change Environment Variable (CHGENVVAR)
Type choices, press Enter.
Environment variable . . . . . . > QIBM_MULTI_THREADED
New value . . . . . . . . . . . Y