Как получить скрипт для определения пути к файлу из любой точки оболочки? - PullRequest
0 голосов
/ 01 октября 2019

Итак, у меня есть пакет, и в этом пакете у меня есть мой скрипт:

├── foo
│   ├── __init__.py
│   ├── funcs
│   │   ├── __init__.py
│   │   ├── stuff.py
│   ├── resources
│   │   └── haarcascade_frontalface_default.xml
│   ├── scripts
│   │   ├── __init__.py
│   │   └── script.py
└── setup.py

Я определил script.py как точку входа внутри setup.py, которая позволяет мне запускать скрипт как $ script [INPUTS] из любой точки оболочки. Однако мой script.py опирается на XML-файл, расположенный под ресурсами. Файл используется для создания экземпляра cv2.CascadeClassifier в openCV, хотя класс принимает в качестве аргумента путь файла. Проблема в том, что я не могу сделать cv2.CascadeClassifier("../resources/haarcascade_frontalface_default.xml"), потому что при запуске этого скрипта, как упомянуто выше, CascadeClassifier ищет файл из каталога, в котором был вызван скрипт. Я хочу, чтобы скрипт былвозможность найти файл XML независимо от того, где выполняется сценарий.

Другими словами:

Запуск сценария из собственного каталога:

$ pwd
Users/admin/foo/scripts
$ script -i something
Works! 
The script was executed from a directory where it managed to locate xml file

Запуск сценария из другогоdirectory:

$ cd Users/admin/another_directory
$ script -i something
Failed >:(
Didn't manage to locate xml file...

XML-файл и сценарий будут иметь одинаковый относительный путь, как показано в дереве.

Какое здесь решение, стек? Я немного застрял. Очень признателен:)

PS: слава, если решение работает с яйцом

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