Импорт psycopg2 в Heroku с помощью Python и Node.js - PullRequest
0 голосов
/ 28 ноября 2018

Итак, я пытаюсь импортировать 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, и записывает его на консоль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...