Мне потребовались некоторые усилия, чтобы найти ответы здесь, в Интернете и в документации по Python, а также самостоятельно провести тестирование, чтобы в итоге мои скрипты Python работали без проблем на моих машинах с Windows (WinXP и Win7).Итак, я просто написал об этом в блоге и добавляю это ниже на случай, если это будет полезно для других.Извините, это долго, и не стесняйтесь, чтобы улучшить его;Я не эксперт.
[ ОБНОВЛЕНИЕ : Python 3.3 теперь включает в себя Python Launcher для Windows, который позволяет вам вводить py (а не python) для вызова интерпретатора по умолчанию или py-2, py -3, py -2.7 и т. Д. Он также поддерживает строки Шебанга, что позволяет самому сценарию указывать.Для версий, предшествующих 3.3, программа запуска доступна в виде отдельной загрузки.http://docs.python.org/3/whatsnew/3.3.html]
Удобный запуск скриптов Python под Windows
Возможно, вы создаете свои собственные скрипты Python или, возможно, кто-то дал вам один для того, чтобы что-то делать с вашими файлами данных.Допустим, вы приобрели скрипт Python и сохранили его в «D: \ my scripts \ ApplyRE.py».Вы хотите удобно запустить его, дважды щелкнув по нему или введя его в командную строку из любого места, с возможностью передачи ему параметров, например: (-o означает «перезаписать выходной файл, если он уже существует»):
ApplyRE infile.txt outfile.txt -o
Допустим, у вас также есть файл данных "C: \ some files \ some lexicon.txt".Самый простой вариант - переместить файл или сценарий так, чтобы они находились в одном месте, но это может запутаться, поэтому давайте предположим, что они останутся отдельными.
Убедитесь, что Windows может найти интерпретатор Python
После установки Python убедитесь, что ввод python в командную строку работает (а затем введите exit (), чтобы вернуться из интерпретатора Python).
C:\>python
Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
C:\>
Если это не сработает, вам нужно добавить что-то вроде «; C: \ Python32» (без кавычек) в переменную среды PATH.Для получения инструкций см. Ниже PATHEXT.
Связывание Python с .py и .pyc
Убедитесь, что двойной щелчок по ApplyRE.py запускает его.(Между прочим, он также должен иметь логотип Python и быть помеченным как «Файл Python».) Если это еще не сделано, щелкните правой кнопкой мыши файл .py, выберите «Открыть с помощью», «Выбрать программу» и проверьте«Всегда использовать ...» Эта ассоциация повышает удобство, но не является строго необходимой - вы можете указывать «python» каждый раз, когда хотите запустить скрипт, например:
D:\my scripts>python ApplyRE.py lexicon-sample.txt -o
Running... Done.
Вот очень специфическийвариант, который является необязательным, если вам не нужно указывать другую версию интерпретатора.
D:\my scripts>c:\python32\python ApplyRE.py lexicon-sample.txt -o
Running... Done.
Но это боль.К счастью, как только Python установлен, в PATH и связан с .py, тогда двойной щелчок по файлу .py или прямой ввод его в виде команды должен работать нормально.Здесь мы, похоже, запускаем скрипт напрямую - приятно и просто запустить его на примере файла, который находится в папке «мои скрипты» вместе со скриптом.
D:\my scripts>ApplyRE.py lexicon-sample.txt -o
Running... Done.
Пропуск .pyрасширение (редактирование PATHEXT)
Чтобы еще больше сократить набор текста, вы можете указать Windows, что .py (и, возможно, файлы .pyc) являются исполняемыми.Для этого щелкните правой кнопкой мыши Компьютер и выберите Свойства, Дополнительно, Переменные среды, Системные переменные.Добавьте "; .PY; .PYC" (без кавычек) в существующую переменную PATHEXT или создайте ее, если вы уверены, что она еще не существует.Закройте и снова откройте командную строку.Теперь вы можете опустить .py (FYI, это может привести к запуску ApplyRE.exe или ApplyRE.bat, если таковой существует).
D:\my scripts>ApplyRE lexicon-sample.txt -o
Running... Done.
Добавление сценариев в систему PATH
Если вы собираетесь часто использовать свои скрипты из командной строки (это менее важно, если вы делаете это с помощью файлов BAT), то вы захотите добавить папку своих скриптов в системный PATH.(Рядом с PATHEXT вы должны увидеть переменную PATH; добавьте к ней «; D: \ my scripts» без кавычек.) Таким образом, вы можете запустить скрипт из какого-то другого места для файлов в текущем месте, например так:
C:\some files>ApplyRE "some lexicon.txt" "some lexicon OUT.txt" -o
Running... Done.
Удачи!Это почти все, что вам нужно сделать для оптимизации командной строки.
Запуск напрямую без настройки PATH
Если вы быстро печатаете на машинке или не против создания пакетного файла для каждой ситуации, вы можете указать полные пути (для сценария или для параметров)вместо настройки PATH.
C:\some files>"d:\my scripts\ApplyRE.py" "some lexicon.txt" "some lexicon OUT.txt" -o
Running... Done.
C:\some files>d:
D:\>cd "my scripts"
D:\my scripts>ApplyRE.py "c:\some files\some lexicon.txt" "c:\some files\some lexicon OUT.txt" -o
Running... Done.
Создание ярлыков или командных файлов
Если .py связан с установленным Python, вы можете просто дважды щелкнуть ApplyRE.py, чтобы запустить его, ноконсоль может появляться и исчезать слишком быстро, чтобы прочитать ее вывод (или сбой!).И чтобы передать параметры, вам нужно сначала выполнить одно из следующих действий.(a) Щелкните правой кнопкой мыши и создайте ярлык.Щелкните правой кнопкой мыши ярлык, чтобы изменить свойства и добавить параметры в Target.(b) Создайте командный файл - простой текстовый файл с отдельным именем, например ApplyRErun.bat.Этот вариант, вероятно, лучше, потому что вы можете попросить его сделать паузу, чтобы вы могли увидеть результат.Вот пример содержимого файла BAT, написанный для размещения и запуска из c: \ some files.
python "d:\my scripts\ApplyRE.py" "some lexicon.txt" "some lexicon OUT.txt" -o
pause
Advanced: добавление к PYTHONPATH
Обычно это не обязательно, но одиндругая переменная окружения, которая может иметь значение, - это PYTHONPATH.Если бы мы добавили сценарии d: \ my к этой переменной, другие сценарии Python в других местах могли бы использовать их через операторы импорта.