Опитвам се да осигуря скрипт за завършване на bash за моя CLI инструмент, който е написан на Python. Според Python Packaging Authority , data_files
в setup.py е точно това, от което се нуждая:
Въпреки че конфигурирането на package_data е достатъчно за повечето нужди, в някои случаи може да се наложи да поставите файлове с данни извън вашите пакети. Директивата data_files ви позволява да направите това. Полезно е най-вече, ако трябва да инсталирате файлове, които се използват от други програми, които може да не познават пакетите на Python.
Така че добавих файла за завършване така:
data_files=[
('/usr/share/bash-completion/completions', ['completion/dotenv']),
],
и опитайте да го тествате с:
pip install -e .
В моята виртуална среда. Скриптът за завършване обаче не се инсталира. Забравих ли нещо или pip
е повреден? Пълният проект може да бъде намерен тук
-vvv
. - person Bastian Venthur   schedule 17.03.2019/usr
вашите потребители трябва да стартиратpip install
като root. Т.е. забранявате използването наpip install --user
или инсталирането във виртуална среда. Вторият проблем е, чеbash
съхранява завършването в/usr/share/bash-completion/completions
само на Linux. Т.е. пакетът инсталира файла за завършване в грешна директория във FreeBSD или MacOS. Накратко,data_files
е напълно грешен подход. - person phd   schedule 17.03.2019