python подпроцесс с ошибкой tabau tabcmd - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь получить доступ к таблице через tabcmd в поле linux, используя скрипт python:

  tabcmd= "login -s " + taburl + " -u " + tabuser+ " --password-file " + '"' + tabpwpath + '"' + " --no-certcheck" #specify your cmd command
  print(tabcmd)
  cmdCommand =  tabcmd_path + tabcmd
  print("check " + cmdCommand)
  process= subprocess.check_output(cmdCommand,stderr=subprocess.STDOUT)

Передаваемая cmdCommand создается следующим образом:

/opt/tableau/tabcmd/bin/tabcmd login -s http://tableau.server.com -u username --password-file "/home/user/testpw.file" --no-certcheck

Когда Я запускаю эту команду в linux вручную, она работает, но при использовании подпроцесса выдает ошибку вроде:

process= subprocess.check_output([cmdCommand],stderr=subprocess.STDOUT)
File "/home/ec2-user/.pyenv/versions/3.7.0/lib/python3.7/subprocess.py", line 376, in check_output
**kwargs).stdout
  File "/home/ec2-user/.pyenv/versions/3.7.0/lib/python3.7/subprocess.py", line 453, in run
with Popen(*popenargs, **kwargs) as process:
 File "/home/ec2-user/.pyenv/versions/3.7.0/lib/python3.7/subprocess.py", line 756, in __init__
restore_signals, start_new_session)
 File "/home/ec2-user/.pyenv/versions/3.7.0/lib/python3.7/subprocess.py", line 1499, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory:

Почему подпроцесс не распознает так же, как и запуск вручную с extact одинаковой печатью?

1 Ответ

0 голосов
/ 05 мая 2020

разница между windows и linux:

process = subprocess.check_output(cmdCommand, shell=True, stderr=subprocess.STDOUT

Я добавил оболочку true и в linux она отлично работает

...