Виртуальные среды, созданные с помощью Java ProcessBuilder, не могут правильно установить зависимости, тогда как зависимPython

Программы на Python
Ответить
Anonymous
 Виртуальные среды, созданные с помощью Java ProcessBuilder, не могут правильно установить зависимости, тогда как зависим

Сообщение Anonymous »

Я столкнулся с проблемой: я создаю виртуальные среды Python с помощью Java ProcessBuilder в Windows, но среды, созданные таким образом (также пробовали с терминала, заканчивающегося таким же образом), не могут установить те же зависимости, которые отлично работают, когда я создаю виртуальную среду из PyCharm, используя тот же базовый исполняемый файл Python. Вот разбивка:
Я использую один и тот же исполняемый файл Python (проверенный) как для создания сред с помощью PyCharm, так и с помощью ProcessBuilder в моем коде Java.
Виртуальная среда, созданная в PyCharm, работает. прекрасно, и я могу без проблем установить все необходимые зависимости.
Однако виртуальная среда, созданная с помощью ProcessBuilder в моем коде Java, не может установить те же зависимости, и я получаю ошибки при попытке их установить, особенно в отношении разрешений и конфликты пакетов.
Основная проблема заключается в том, что виртуальная среда, созданная с помощью ProcessBuilder, похоже, имеет проблемы с установкой зависимостей, хотя она основана на том же исполняемом файле Python, что и тот, который создан в PyCharm.

Конфликт вызван:
mediapipe 0.10.0 зависит от protobuf=3.11
tensorboard 2.10.1 зависит от protobuf=3.9.2

Эти зависимости находятся в venv, созданном в pycharm, и он работает.
Я создал несколько venv в pycharm, пытаясь заставить его выйти из строя, чтобы увидеть, в чем проблема, кроме очевидной проблемы с зависимостями, все они сработали.
Измените - в protobuf и на тот, который удовлетворяет проблеме зависимостей, и тогда код не работает, ха-ха.
Кто-нибудь сталкивался с этим несоответствием при управлении виртуальными средами через Java ProcessBuilder/через терминал? Может ли это быть связано с проблемой разрешений или есть что-то особенное, что может отличаться в том, как PyCharm и Java обрабатывают создание среды?

Код: Выделить всё

private void crearYActivarAmbienteVirtual() {
try {
// Command to create the virtual environment
String[] createCommand = {
"C:\\Python310\\python.exe",
"-m",
"venv",
"C:\\venv"
};
runProcess(
createCommand,
"Ambiente Virtual",
"El ambiente virtual se ha creado correctamente.",
"Error al crear el ambiente virtual."
);

// Directly invoke pip from the virtual environment
String pipPath = "C:\\venv\\Scripts\\pip.exe"; // Adjust for Windows paths
String[] installCommand = {
pipPath,
"install",
"-r",
"src/main/resources/PythonScript/requirements.txt"
};

runProcess(
installCommand,
"Requerimientos",
"Los requerimientos se han instalado correctamente.",
"Error al instalar los requerimientos."
);
} catch (IOException | InterruptedException e) {
Platform.runLater(() -> queueNotification("Error", "Error al configurar el ambiente virtual.", true));
}
}

private void runProcess(String[] command, String title, String successMsg, String errorMsg) throws IOException, InterruptedException {
Process process = new ProcessBuilder(command).start();
process.waitFor();

if (process.exitValue() == 0) {
Platform.runLater(() -> queueNotification(title, successMsg, false));
} else {
Platform.runLater(() -> queueNotification("Error", errorMsg, true));
}
}
что касается ошибок, я просто делаю то же самое в терминале и смотрю, что выдает

ОШИБКА: Невозможно установить - r src/main/resources/PythonScript/requirements.txt (строка 46), -r src/main/resources/PythonScript/requirements.txt (строка 78) и protobuf==3.20.3, поскольку эти версии пакетов имеют конфликтующие зависимости.

Конфликт вызван:
mediapipe 0.10.0 зависит от protobuf =3.11
тензорная доска 2.10.1 зависит от protobuf=3.9.2

Подробнее здесь: https://stackoverflow.com/questions/792 ... pendencies
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»