#javascript #python #node.js #docker #express
Вопрос:
Может ли кто-нибудь, пожалуйста, объяснить, почему это так и как эту проблему можно исправить?
Если я загружу свой Node.js сервер через докер с использованием docker compose up -d
Я отправляю данные на свой сервер через форму vue и получаю их через это.
app.post('/', upload.single('file'),(req, res) =>{
converter.json2csv(req.body, (err, csv) => {
if (err) {
throw err;
}
// print CSV string
console.log(csv);
fs.writeFileSync('./uploads/file.csv', csv)
});
var spawn = require('child_process').spawn;
var process = spawn('python', ['./uploads/classify.py']);
process.stderr.on('data', function (data) {
console.log(data.toString())
});
})
Ошибка, которую я получаю, такова
Traceback (most recent call last):
File "./uploads/classify.py", line 52, in <module>
import pandas as pd
ImportError: No module named pandas
Примечание: если я изменю stderr на stdout, ничего не произойдет (как и следовало ожидать)
Однако, если я загружаюсь через Node index.js
, я не сталкиваюсь с этой ошибкой, и все в порядке, однако мой веб-сайт работает неправильно.
Есть ли способ, которым я все еще могу загрузить свой сервер через docker compose up -d
и не получать панд, так как pd отсутствует вместо загрузки через node index.js
Я также пробовал использовать пакет npm python-shell
, и я получаю панд, так как модуль pd также отсутствует
Существуют ли какие-либо другие пакеты или методы, помогающие перенести скрипт python на узел?