Запустите скрипт Python в папке проекта Go (используя путь проекта / относительный файл к скрипту) - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь выполнить скрипт Python на Go.Однако, куда бы я ни посмотрел, ничто не объясняет, как выполнить скрипт, используя проект / относительный путь.У меня есть свой код на GitHub и я не хочу полный путь к скрипту ("home / user / Documents / projectFolder / script.py)

Вместо этого мне нужен проект / относительный путь (" / script.py "или эквивалентный)

В конечном счете, как мне выполнить скрипт script.py без необходимости искать его в определенном каталоге?

ПРИМЕЧАНИЕ : мойПроект находится в "home / user / Documents / project"

edit: изменен раздел 'Ultimate'

1 Ответ

0 голосов
/ 05 октября 2018

Поскольку Go является скомпилированным языком, который (как правило) приводит к одному исполняемому файлу, структура проекта в значительной степени теряется во время компиляции.Поэтому относительный путь проекта не имеет смысла во время выполнения.Вам понадобится другой способ найти ваш сценарий (а также получить тот, который выполняет вашу программу).

Один из способов сделать это - потребовать, чтобы ваш исполняемый файл и сценарий находились в местах, которые вы знаете относительнодруг к другу (например, папка scripts и папка bin, которые находятся в одном каталоге).Затем вы можете os.Args[0] получить путь к вашему исполняемому файлу, который вы затем сможете использовать для построения пути к вашему сценарию.Чтобы построить путь, вы можете взглянуть на пакет filepath.

Редактировать: Прочитав ваш обновленный вопрос, я нашел проект packr, который, кажется, обеспечивает способ включить статические файлы в ваш двоичный файл.Я никогда не использовал проект и не знаю, как его точно использовать, но похоже, что вы должны иметь возможность сохранить файл скрипта в бинарном файле и затем каким-то образом передать скрипт в python.Например, вы можете записать его во временный файл или передать его в python, используя аргумент -c.Этот подход потребует от вас создания проекта с использованием инструмента командной строки packr.Кроме того, если вы включите большие файлы, ваш двоичный файл также увеличится в размере.

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