Ответ 1
Возможно, вы захотите посмотреть на setuptools, которые сделают это автоматически для вас; из http://pythonhosted.org/setuptools/setuptools.html#automatic-script-creation:
Сценарии упаковки и установки могут быть немного неудобными с помощью Distutils. Во-первых, нет простого способа иметь script s filename соответствует локальным соглашениям на платформах Windows и POSIX. Для другого вам часто приходится создавать отдельный файл только для "main" script, когда ваш фактический "главный" - это функция в модуле где-то. И даже в Python 2.4 использование опции -m работает только для актуальные .py файлы, которые arent установлены в пакете.
setuptools исправляет все эти проблемы, автоматически генерируя скрипты для вас с правильным расширением, а в Windows это будет даже создайте файл .exe, чтобы пользователи не могли изменить их. Настройки PATHEXT. Способ использования этой функции - определить "вход" точек "в вашей настройке script, которые указывают, какая функция сгенерирована script должен импортироваться и запускаться. Например, чтобы создать две консоли скрипты, называемые foo и bar, и GUI script, называемые baz, вы можете сделать что-то вроде этого:
setup(
# other arguments here...
entry_points={
'console_scripts': [
'foo = my_package.some_module:main_func',
'bar = other_module:some_func',
],
'gui_scripts': [
'baz = my_package_gui:start_func',
]
}
)