Запуск другой версии Python выдает ошибку «not found» - PullRequest
0 голосов
/ 16 января 2019

У меня есть внешнее приложение, которое поставляется в виде отдельного пакета с собственным подмножеством python и зависимостями. Я намерен связать этот пакет с моим собственным кодом Python и запустить его в облачном потоке данных Google. У меня есть готовый трубопровод. Мне нужна помощь с запуском сценария оболочки, который выдает ошибку «not found»

/usr/local/lib/python2.7/dist-packages/<package>/bin/python2.7: not found

Я вызываю скрипт из своего кода на Python, используя

Process =  '/usr/local/lib/python2.7/dist-packages/<package>/bin/Process'
subprocess.check_call([Process , str(filepath)])

Содержимое Процесса:

#!/bin/sh
. /usr/local/lib/python2.7/dist-packages/<package>/Bashrc

/usr/local/lib/python2.7/dist-packages/<package>/bin/python2.7 -s /usr/local/lib/python2.7/dist-packages/<package>/lib/python2.7/site-packages/<package_name>/Process.py  "$@"

Я попытался поместить чеки в код Python

if os.path.exists("/usr/local/lib/python2.7/dist-packages/<package>/bin/Process"):
 logging.info("Process exists")
else:
  logging.info("Process does not exists")

if os.path.exists("/usr/local/lib/python2.7/dist-packages/<package>/bin/python2.7"):
  logging.info("/usr/local/lib/python2.7/dist-packages/<package>/bin/python2.7 exists")
else:
  logging.info("/usr/local/lib/python2.7/dist-packages/<package>/bin/python2.7 does not exist")

if os.path.exists("/usr/local/lib/python2.7/dist-packages/<package>/Bashrc"):
    logging.info("/usr/local/lib/python2.7/dist-packages/<package>/Bashrc exists")
else:
    logging.info("/usr/local/lib/python2.7/dist-packages/<package>/Bashrc does not exist")

Все они подтверждают, что файл существует. Если я выполню <package>/bin/python2.7 в моей системе, он отлично запускает IDLE.

Эта проблема очень связана с вопросом здесь . Я также отредактировал переменные окружения PYTHONPATH, PATH и другие, включив в них /usr/local/lib/python2.7/dist-packages/<package>/bin/

Я ожидаю, что исполняемый двоичный файл Python запустится и начнет выполнять Process.py со всеми входными параметрами. Что мне делать?

Обычно я хочу передать переменную filepath в качестве аргумента из функции.

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