Как запустить установленный скрипт Python? - PullRequest
7 голосов
/ 02 декабря 2009

Я использовал 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 в PATH )

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 ]

6 голосов
/ 02 декабря 2009

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

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

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

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

...