Код: Выделить всё
flaskProc = require('child_process').spawn('py', ['./py/routes.py']);
flaskProc.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
< /code>
Файлы структурированы так, чтобы электронное приложение было в родительской папке, а в этой папке находится папка, называемая «py», которая содержит все файлы для приложения Flask, и «.venvv " папка. Для простоты все маршруты, указывающие на папку «.venv» и ее дети, будут сокращены до «[...]/py/.venv/»
Проблема
Это происходит, когда я запускаю приложение Electron с NPM Start
Код: Выделить всё
stderr: from jsonschema import validate
ModuleNotFoundError: No module named 'jsonschema'
Попытки Решите < /h2>
Я подозревал, что это была некоторая ошибка, вызванная неправильной установкой модуля, и добавил следующие строки в приложение Flask и запустили его независимо: < /p>
Код: Выделить всё
import sys
print("Executing in", sys.executable)
if "jsonschema" in sys.modules:
print("JSONSchema is in the modules")
else:
print("jsonschema isn't in the modules")
< /code>
Это печатает: < /p>
Executing in [...]/py/.venv/bin/python3
JSONSchema is in the modules
< /p>
и когда я попытался запустить Pip install jsonschema < /code> и Python -m Pip Install Jsonschema , я получил следующие сообщения:
Код: Выделить всё
Requirement already satisfied: jsonschema in ./py/.venv/lib/python3.10/site-packages (3.2.0)
Requirement already satisfied: six>=1.11.0 in ./py/.venv/lib/python3.10/site-packages (from jsonschema) (1.17.0)
Requirement already satisfied: attrs>=17.4.0 in ./py/.venv/lib/python3.10/site-packages (from jsonschema) (25.1.0)
Requirement already satisfied: setuptools in ./py/.venv/lib/python3.10/site-packages (from jsonschema) (59.6.0)
Requirement already satisfied: pyrsistent>=0.14.0 in ./py/.venv/lib/python3.10/site-packages (from jsonschema) (0.20.0)
< /code>
, которые говорят, что они устанавливают в Python3.10. Это подтверждается при использовании Python -m Pip Show jsonschema
edit:
Запуск ls -la py/.venv/bin/python* дает:
Код: Выделить всё
lrwxrwxrwx 1 7 Feb 18 11:46 py/.venv/bin/python -> python3
lrwxrwxrwx 1 16 Feb 18 11:46 py/.venv/bin/python3 -> /usr/bin/python3
lrwxrwxrwx 1 7 Feb 18 11:46 py/.venv/bin/python3.10 -> python3
< /code>
, который показывает, что /python и /python3.10 указывают на «python3», а /python3 указывает на " /usr /bin /python3". Я думаю, что это означает, что Python3.10 является ветвью Python3, поэтому проблема в том, что файл «routes.py», работающий в Python3 Имея это в виду, я попытался запустить: py/.venv/bin/python3 -m pip install jsonschema
Код: Выделить всё
Executing in C:\Python312\python.exe
jsonschema isn't in the modules
Код: Выделить всё
The setting has also been modified in the following scopes:
- Remote
- User
< /code>
Поэтому я попытался изменить пути интерпретатора удаленного и пользователя по умолчанию, но это ничего не сделало. < /p>
Почему электронное приложение не работает на Правильный переводчик? Почему он работает на C \ python312 \ python.exe
Подробнее здесь: https://stackoverflow.com/questions/794 ... s-suspecte