У меня есть код, который написан на Python и Go, со следующей структурой папок ниже. Например, в sub_mod_a
в py_file.py
есть функция PyFunction()
, которая ссылается и запускает go_file.go
локально, используя модуль subprocess
, как показано ниже:
proc = subprocess.Popen(
["go", "run", "go_file.go"],
stdout=subprocess.PIPE,
)
Структура папок выглядит следующим образом:
.
├── mod
| └── sub_mod_a
| ├── py_file.py
| └── go_file.go
| ├── sub_mod_b
│ └── sub_mod_c
└── examples
└── example.ipynb
Теперь в записной книжке Jupyter в examples/
я вызываю PyFunction
, выполняя
import sys
sys.path.insert(0, "..")
from mod.sub_mod_a.py_file import PyFunction
PyFunction()
Однако файл go не кажется, бежать. Я думаю, что это может быть потому, что подпроцесс запускает процесс в ..
, который является каталогом root. Как я могу исправить эту проблему, чтобы пользователю не приходилось менять ссылку на go_file.py
на абсолютную в py_file.py
?