Я пытаюсь выполнить команду unix из Django API python, но получаю ошибку ниже: после установки Java

проверил установленную версию java: root@dev# cd /usr/lib/jvm root@dev:/usr/lib/jvm# ls по умолчанию-java java-1.8.0-openjdk-amd64 java-8-openjdk-amd64

UnixCommand= 'java  -cp dataflow-bundled-2.3.0.jar MsSqlMigrator runner=DataflowRunner'
command= UnixCommand

Я пытался выполнить любым способом:

1)

import os
process=os.system(command)

2)

process= subprocess.Popen(command)
process = subprocess.Popen(
    command, stdout=subprocess.PIPE, 
    stderr=subprocess.STDOUT, shell=True
)
output = process.communicate()
print(process)

Но показывает ошибку: sh: 1: API/java: не найдено 32512 Внутренняя ошибка сервера

Поскольку я пытался выполнить ту же команду непосредственно в оболочке Unix, она работает нормально, и я также установил путь в файле /и т.д./окружающая среда, например, which java дает /USR/бен/Ява

обновить в $JAVA_HOME и добавить то же самое в $ПУТЬ, например export PATH=$PATH:$JAVA_HOME, по-прежнему показывая ту же ошибку.

UnixCommand= 'java  -cp dataflow-bundled-2.3.0.jar MsSqlMigrator runner=DataflowRunner'
command= UnixCommand

Я пытался выполнить любым способом:

1)

import os
process=os.system(command)

2)

process= subprocess.Popen(command)
process = subprocess.Popen(
    command, 
    stdout=subprocess.PIPE, 
    stderr=subprocess.STDOUT, shell=True
)
output = process.communicate()
print(process)

Ожидается: выполнение команды unix через код API Django.

это работает в терминале с помощью командной строки

rahul.m 01.04.2019 15:13

Поместите свою java-команду в сценарий оболочки и попробуйте выполнить сценарий через Python. Для отладки добавьте в сценарий «эхо», чтобы проверить правильность установки PATH и JAVA_HOME.

zeevb 01.04.2019 15:19

@grey: да, это работает с использованием командной строки

Gaurav Agrawal 02.04.2019 12:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
85
0

Другие вопросы по теме