Я пытаюсь выполнить команду unix из Python Django API, но получаю ниже Ошибка: после установки Java - PullRequest
0 голосов
/ 01 апреля 2019

проверил установленную версию Java: root @ dev # cd / usr / lib / jvm root @ dev: / usr / lib / jvm # ls default-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, она работает нормальнои я установил путь в файле / etc / environment , например which java yields / usr / bin / java

обновить в $ JAVA_HOME и добавить то же самое в $ PATH , как 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.

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