当 运行 来自 Lua 时,Python 脚本无法导入 mysql.connector
Python script fails to import mysql.connector when run from Lua
我有一个 Python 脚本,我尝试从 Openresty/Lua 运行 使用以下 Nginx 位置块:
location / {
access_by_lua_block {
ngx.req.read_body()
local request = ngx.req.get_body_data()
io.popen("python3 /www/test.py '" .. request .. "'")
}
}
脚本内容:
#!/usr/bin/python3
import sys
import json
(...)
-- 运行 从命令行 => 有效
-- 运行 来自 Lua => 有效
但是如果我尝试导入 mysql.connector 它不再适用于 Lua,尽管它仍然适用于命令行:
#!/usr/bin/python3
import sys
import json
import mysql.connector
(...)
-- 运行 从命令行 => 有效
-- 来自 Lua 的 运行 => 失败/日志:
Traceback (most recent call last):
File "/www/test.py", line 4, in <module>
import mysql.connector
ModuleNotFoundError: No module named 'mysql'
那么我在这里错过了什么?
在这里找到答案:https://askubuntu.com/questions/1014947/mysql-connector-python-importerror-no-module-named-mysql
应该apt-get install python3-mysql.connector
(即不只是 pip install mysql-connector-python3
)
我有一个 Python 脚本,我尝试从 Openresty/Lua 运行 使用以下 Nginx 位置块:
location / {
access_by_lua_block {
ngx.req.read_body()
local request = ngx.req.get_body_data()
io.popen("python3 /www/test.py '" .. request .. "'")
}
}
脚本内容:
#!/usr/bin/python3
import sys
import json
(...)
-- 运行 从命令行 => 有效
-- 运行 来自 Lua => 有效
但是如果我尝试导入 mysql.connector 它不再适用于 Lua,尽管它仍然适用于命令行:
#!/usr/bin/python3
import sys
import json
import mysql.connector
(...)
-- 运行 从命令行 => 有效
-- 来自 Lua 的 运行 => 失败/日志:
Traceback (most recent call last):
File "/www/test.py", line 4, in <module>
import mysql.connector
ModuleNotFoundError: No module named 'mysql'
那么我在这里错过了什么?
在这里找到答案:https://askubuntu.com/questions/1014947/mysql-connector-python-importerror-no-module-named-mysql
应该apt-get install python3-mysql.connector
(即不只是 pip install mysql-connector-python3
)