Вызов python из подпроцесса django, mysql ошибка не найдена - PullRequest
3 голосов
/ 01 февраля 2020
  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()
доступ из Django с использованием подпроцесса, ошибка не найдена ...

   views.py include...

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

Сообщение об ошибке;

     ModuleNotFoundError: No module named 'pymysql'

Я пропустил что-то? или есть другие способы? Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

views.py

def datatest (запрос):
subprocess.call ([sys.executable, "- c", "import dbtest2"])
return HttpResponse (' Звоните python ... ')

0 голосов
/ 02 февраля 2020

Если вы используете виртуальные среды, в зависимости от того, как вы запускаете скрипт, 'python' может относиться к системе Python. Использование sys.executable вместо 'python' может помочь.

Обратите внимание, что если вы используете WSGI, sys.executable, вероятно, установлен неправильно, поэтому вы можете явно установить его в сценарии точки входа WSGI.

...