【问题标题】:Calling python from django subprocess, mysql not found error从 django 子进程调用 python,mysql not found 错误
【发布时间】:2020-05-17 21:25:46
【问题描述】:
  1. python dbtest1.py ==> 工作正常
       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()
  1. 使用子进程从 Django 访问,未找到错误...

   views.py include...

    def datatest(request):<br>
       subprocess.call(['python', 'dbtest3.py'])<br>
       return HttpResponse('Call python...')

错误信息;

     ModuleNotFoundError: No module named 'pymysql'

我错过了什么吗?还是有其他方法? 谢谢。

【问题讨论】:

  • subprocess.call(['python', 'dbtest1.py'])

标签: python mysql django subprocess pymysql


【解决方案1】:

如果您使用的是虚拟环境,则取决于您运行脚本的方式,'python' 可能指的是系统 Python。使用 sys.executable 而不是 'python' 可能会有所帮助。

请注意,如果您使用的是 WSGI,sys.executable 可能未正确设置,因此您可能需要在 WSGI 入口点脚本中显式设置它。

【讨论】:

    【解决方案2】:

    views.py

    定义数据测试(请求):
    subprocess.call([sys.executable, "-c", "import dbtest2"])
    return HttpResponse('调用 python...')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 2013-02-20
      • 1970-01-01
      相关资源
      最近更新 更多