Итак, я пытаюсь импортировать psycopg2 для связи с базой данных SQL на Python для приложения, размещенного на Heroku.Я прочитал все руководства, в которых говорилось «просто поместите это в your needs.txt», и я попробовал это.Проблема в том, что приложение в основном Node.js, а приложение вызывает только Python.Я не думаю, что Heroku в этом случае даже ищет файл require.txt.Я также попытался поместить папку для модуля в мой корневой каталог, но это тоже не работает.У меня есть настройка скрипта Python для входа на консоль в браузере через скрипт на стороне клиента и все, чтобы я мог видеть вывод.Я продолжаю получать ImportError: no module named psycopg2
.
Как мне импортировать сторонний модуль здесь?
Какой-то код в Node.js:
app.get('/my_route', (req, res) => {
var process = spawn('python', ["python_script.py", "MSG:Hi there!"]);
process.stdout.on('data', function(data) {
res.send(data);
});
});
Это простонаправляет каждый запрос на www.my_website.com/my_route к python_script.py с аргументом «MSG: привет!».В моем скрипте Python он сравнивает первые 3 буквы аргумента со списком кодов и отправляет остальную часть аргумента определенной функции.В Python:
try:
import psycopg2
except Exception as e:
print(e)
Все, что он печатает, возвращается в Node как переменная data
, а затем отправляется тому, кто сделал запрос.В этом случае у меня есть HTML-скрипт, отправляющий запросы на этот URL и регистрирующий вывод на консоль.Это все сложно и запутанно, но в основном это выглядит так:
клиентская часть HTML запрашивает вывод, отправляя запрос на определенную URL-адрес серверной стороны, Node.js получает запрос и отправляет его в Python Python выполняет SQLуправление, помимо прочего (но не может импортировать psycopg2). Node.js получает выходные данные от Python (в данном случае сообщение об ошибке). Клиентский HTML-код получает то, что отправляет Node.js, и записывает его на консоль.