Я пытаюсь предоставить сценарий завершения bash для моего инструмента CLI, написанного на Python. Согласно Управлению по упаковке Python , 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