как я могу сделать файл setup.py для моего собственного скрипта? Я должен сделать свой сценарий глобальным. (добавьте его в/usr/bin), чтобы я мог запустить его из консоли, просто введите аргументы scriptName. ОС: Linux. EDIT: Теперь мой сценарий можно установить, но как я могу сделать его глобальным? Чтобы я мог запускать его из консоли, просто введите имя.Python - установить скрипт в систему
30
A
ответ
35
EDIT: Этот ответ касается только установки исполняемых скриптов в /usr/bin
. Я предполагаю, что у вас есть базовые знания о том, как работают файлы setup.py
.
Создайте свой скрипт и поместить его в свой проект, как это:
yourprojectdir/
setup.py
scripts/
myscript.sh
В файле setup.py
это сделать:
from setuptools import setup
# you may need setuptools instead of distutils
setup(
# basic stuff here
scripts = [
'scripts/myscript.sh'
]
)
Затем введите
python setup.py install
В принципе это все. Есть вероятность, что ваш скрипт будет находиться не совсем в /usr/bin
, но в другом каталоге. Если это так, то тип
python setup.py install --help
и поиск --install-scripts
параметра и друзей.
1
Я знаю, что этот вопрос довольно старый, но на всякий случай, я публикую, как я решил проблему для себя, которая хотела установить пакет для PyPI, который при установке с pip
установил бы его как системный пакет, а не только для Python.
setup(
# rest of setup
console_scripts={
'console_scripts': [
'<app> = <package>.<app>:main'
]
},
)
Хорошо, я сделал, что вы написали. Но после запуска: setup.py install i got:
error: file '/home/ockonal/workspace/scripts/getkey.py' не существует – Ockonal
Хорошо, я уже установил мой сценарий, но как я могу сделать это глобальное? Я не могу запустить его из консоли, просто набрав имя. – Ockonal
Где именно был установлен скрипт? Если он находится в/usr/bin, то setup.py работает нормально. Проверьте разрешения вашего сценария - у него должны быть разрешения + x для всех. Скрипт в вашем проекте должен иметь эти persmissions, так что когда он будет скопирован в/usr/bin, все будет в порядке. – Jasiu