У меня есть каталог, который содержит набор функций и другую папку, в которой содержится мой основной проект, который я хотел бы запустить из терминала: kf_sine_demo.py
.
Когда я построчно запускаю код из VS-Code (используя Shift
+ Enter
), все работает нормально. В частности, я могу импортировать функции для дальнейшего использования:
from EKFUKF_Py import lti_disc, kf_predict, kf_update, rts_smooth
Однако, когда я запускаю файл с терминала:
python kf_sine_demo.py
Я получаю следующую ошибку:
Traceback (most recent call last):
File "EKFUKF_Py/demo/kf_sine_demo/kf_sine_demo.py", line 16, in <module>
from EKFUKF_Py import lti_disc, kf_predict, kf_update, rts_smooth
ModuleNotFoundError: No module named 'EKFUKF_Py'
Я вижу решения, которые включают указание полного пути. У меня есть сильные предпочтения относительно относительного импорта.
ОБНОВЛЕНИЕ:
Это решение было наиболее полезным для меня: https://stackoverflow.com/a/37193862/4576194.
- Выполнить
python -m EKFUKF_Py.demo.kf_sine_demo.kf_sine_demo
из родительского каталога EKFUKF_Py
Но это не совсем то, что я хочу. Я хочу иметь возможность запускать python kf_sine_demo.py
из каталога kf_sine_demo
и хочу, чтобы он знал, что функции, необходимые для его импорта, расположены на 2 уровня выше.