Установить рабочий каталог для точки входа в setup.py

#python

#python

Вопрос:

Я определил точку входа в моем setup.py вот так:

     entry_points={
        'console_scripts': [
           'gpstest = src.gps:main',
        ],
    },
  

Когда я вызываю gpstest из каталога X, функция запускается из этого каталога X.
Моя цель — иметь возможность вызывать gpstest из любого каталога, но запускать основную функцию gps/src (поэтому, когда я печатаю текущий рабочий каталог в main.py using os.getcwd() , я хочу получить .../gps/src независимо от того, откуда я выполнял gpstest ).

Есть ли способ сделать это?

Комментарии:

1. Очень часто я просто склонен использовать __file__ переменную, которая указывает на текущее script.py местоположение. Чтобы получить родительскую папку, я использую from pathlib import Path; Path(__file__).resolve().parent . Хотя, это комментарий для получения родительского каталога в целом, а не для вашей проблемы. Зачем вам нужно использовать os.getcwd() ?

2. Весь смысл создания модуля python заключается в независимости от каталога и автономной утилите. Ваш console_scripts служит точкой входа для этого, ваша основная функция должна содержать вашу логику. Я не уверен, чего вы пытаетесь достичь здесь

3. У вас есть src.gps:main или gps.src:main ? Не могли бы вы показать соответствующие части вашей структуры каталогов?