Как упаковать скрипт Python командной строки - PullRequest
29 голосов
/ 13 июля 2009

Я создал скрипт Python, который предназначен для использования из командной строки. Как мне его упаковать? Это мой первый пакет на Python, и я немного прочитал о setuptools, но я все еще не уверен, что это лучший способ сделать это.


Решение

Я использовал setup.py с конфигурациями клавиш, указанными ниже:

setup(
....
    entry_points="""
[console_scripts]
mycommand = mypackage.mymodule:main
""",
....
)

Вот хороший пример в контексте.

Ответы [ 5 ]

4 голосов
/ 15 августа 2011

Вместо того, чтобы использовать нестандартный способ работы с setuptools, можно напрямую полагаться на функцию distutils setup, используя аргумент scripts, как указано здесь: http://docs.python.org/distutils/setupscript.html#installing-scripts

from distutils import setup
setup(
    ...,
    scripts=['path/to/your/script',],
    ...
)

Это позволяет вам оставаться совместимым а) со всеми версиями Python и б) не полагаясь на setuptools в качестве внешней зависимости.

3 голосов
/ 13 июля 2009

@ Зак, учитывая ваше пояснение в вашем комментарии к ответу @ soulmerge, похоже, вам нужно написать setup.py в соответствии с инструкциями, касающимися distutils - здесь в частности, это то, как вы регистрируетесь в pypi, а здесь о том, как загрузить в pypi после регистрации - и, возможно, (если вам нужна дополнительная функциональность по сравнению с тем, что поставляет distutils самостоятельно), добавить setuptools, частью которого является easy_install, с помощью инструкций здесь .

2 голосов
/ 16 марта 2014

В прошлом месяце я написал статью, отвечающую именно на ваш вопрос. Вы можете найти его здесь: http://gehrcke.de/2014/02/distributing-a-python-command-line-application/

Там я использую только рекомендуемые в настоящее время методы (шпагат, чистые setuptools вместо distutils, ключ console_scripts в словаре entry_points, ...), которые работают для Python 2 и 3.

2 голосов
/ 13 июля 2009

Что вы подразумеваете под упаковкой? Если это один скрипт, запускаемый на коробке, в которой уже установлен python, вам просто нужно поместить shebang в первую строку файла и все.

Если вы хотите, чтобы он выполнялся под Windows или на коробке без Python, вам понадобится что-то внешнее, например, pyinstaller .

Если ваш вопрос касается того, куда помещать файлы конфигурации / данных, вам необходимо работать в зависимости от платформы (например, запись в реестр или домашнюю папку ), так как насколько я знаю.

0 голосов
/ 14 августа 2015

Для тех, кто является новичком в Python Packaging, я советую пройти этот Python Packaging Tutorial .

Примечание к учебнику:

В настоящее время эта документация сосредоточена только на Python 2.x и может не подходить для пакетов, предназначенных для Python 3.x

...