Как запустить установленный скрипт Python?

Я использовал distutils для установки моего пакета python с этим setup.py:

import distutils.core

args = {
    'name' :            'plugh',
    'version' :         '1.0',
    'scripts' :         [ "scripts/plugh" ],
    'packages':         [ "plugh" ],
}

d = distutils.core.setup(
    **args
)

На linux/mac он работает как положено:

% plugh
hello world
% 

На окнах скрипт "plugh" не запускается:

C:\Python25\Scripts>plugh
'plugh' is not recognized as an internal or external command,
operable program or batch file.

C:\Python25\Scripts>

Я нашел отчет об ошибке по адресу http://bugs.python.org/issue7231 что каталог \Scripts не добавляется в PATH при установке python, поэтому я применил обходной путь, описанный в этом билете (т.е. добавьте C:\Python25\Scripts в путь)

C:\Python25\Scripts>path
PATH=c:\Python25\Scripts;C:\Program Files\Legato\nsr\bin;C:\WINDOWS\system32;C:\
WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;c:\python2
5;c:\local;C:\WINDOWS\system32\WindowsPowerShell\v1.0

Это то, что просто не работает в Windows? И если да, то как именно вы должны использовать скрипты Python на компьютере с Windows?

Я полагаю, что я мог бы обнаружить Windows и добавить в список дополнительный скрипт под названием "plugh.bat", содержащий что-то вроде:

@echo off
c:\python25\python.exec c:\python25\scripts\plugh %1 %2 %3 %4 %5 %6 %7 %8 %9

но действительно ли это правильный ответ здесь? Я бы подумал, что со всеми настройками, которые distutils содержит для окон, будет лучший ответ, чем этот.

2 ответа

Windows использует расширение файла, чтобы определить, как он будет работать.

Назовите свой файл plugh.py и использовать plugh.py на приглашение позвонить.

  1. Если вы используете ActivePython, он уже добавит C:\PythonXY\Scripts каталог к ​​вашему %PATH% (ActivePython 2.6 дополнительно добавляет PEP 370%APPDATA%\Python\Scripts в %PATH%) во время установки.

  2. Для развертывания сценариев на компьютере с Windows лучше использовать Distribute, который позаботится об установке.exe-оболочек для ваших сценариев и вызове фактического Python, с которым был установлен ваш пакет (чтобы избежать конфликта с несколькими установками Python - поэтому назовите свой сценарий до конца. ру просто не хватает). Подробнее об этой теме читайте о точках входа в документации по распространению.

Другие вопросы по тегам