python - scripts - setup.py и добавление файла в/bin/




setuptools extra_compile_args (3)

Я не могу понять, как сделать setup.py добавить скрипт в пользовательский /bin или /usr/bin или что угодно.

Например, я хотел бы добавить myscript.py в /usr/bin чтобы пользователь мог вызывать myscript.py из любого каталога.


Документация Python объясняет это в разделе сценариев установки .

Скрипты - это файлы, содержащие исходный код Python, предназначенный для запуска из командной строки.

setup(...,
      scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val']
)

Если вы хотите построить и установить весь пакет python, я бы так поступил:

  • Измените функцию setup () в файле setup.py, чтобы содержать параметр с именем scripts, и укажите его аргумент как местоположение файла (ов), который вы хотите запустить из любого места. например

setup(name='myproject',author='',author_email='',scripts=['bin/myscript.py'])

  • В директории, содержащей setup.py, создайте каталог bin, набрав mkdir bin
  • Добавьте myscript.py в этот вновь созданный каталог bin (и убедитесь, что он выполним!)
  • cd в каталог, содержащий setup.py, и установить весь пакет python, набрав python setup.py install
  • Как только пакет будет установлен, вы сможете запустить myscript.py из любой точки системы!

Рассмотрим использование console_scripts :

from setuptools import setup
setup(name='some-name',
      ...
      entry_points = {
              'console_scripts': [
                  'command-name = package.module:main_func_name',                  
              ],              
          },
)

Где main_func_name - основная функция вашего основного модуля. command-name - имя, под которым оно будет сохранено в / usr / local / bin / (обычно)





python