从 django 子进程调用 python,mysql 未找到错误
Calling python from django subprocess, mysql not found error
- python dbtest1.py ==> 工作 O.K.
dbtest1.py :<br>
import pymysql.connector<br>
dbCon = pymysql.connector.connect(host='...', database='...', user='...', password='...')<br>
cursor = dbCon.cursor()<br>
cursor.execute("INSERT INTO cm_person (name) VALUES ('고길송')")<br>
dbCon.commit()
- 使用子进程从 Django 访问,未找到错误...
views.py include...
def datatest(request):<br>
subprocess.call(['python', 'dbtest3.py'])<br>
return HttpResponse('Call python...')
错误信息;
ModuleNotFoundError: No module named 'pymysql'
我错过了什么吗?或者还有其他方法吗?
谢谢。
如果您使用的是虚拟环境,根据您 运行 脚本的方式,'python'
可能引用系统 Python。使用 sys.executable
而不是 'python'
可能会有所帮助。
请注意,如果您使用的是 WSGI,sys.executable
可能设置不正确,因此您可能需要在 WSGI 入口点脚本中明确设置它。
views.py
def 数据测试(请求):
subprocess.call([sys.executable, "-c", "import dbtest2"])
returnHttpResponse('Call python...')
- python dbtest1.py ==> 工作 O.K.
dbtest1.py :<br>
import pymysql.connector<br>
dbCon = pymysql.connector.connect(host='...', database='...', user='...', password='...')<br>
cursor = dbCon.cursor()<br>
cursor.execute("INSERT INTO cm_person (name) VALUES ('고길송')")<br>
dbCon.commit()
- 使用子进程从 Django 访问,未找到错误...
views.py include...
def datatest(request):<br>
subprocess.call(['python', 'dbtest3.py'])<br>
return HttpResponse('Call python...')
错误信息;
ModuleNotFoundError: No module named 'pymysql'
我错过了什么吗?或者还有其他方法吗? 谢谢。
如果您使用的是虚拟环境,根据您 运行 脚本的方式,'python'
可能引用系统 Python。使用 sys.executable
而不是 'python'
可能会有所帮助。
请注意,如果您使用的是 WSGI,sys.executable
可能设置不正确,因此您可能需要在 WSGI 入口点脚本中明确设置它。
views.py
def 数据测试(请求):
subprocess.call([sys.executable, "-c", "import dbtest2"])
returnHttpResponse('Call python...')