Мне потребовались некоторые усилия, чтобы найти ответы здесь, в Интернете и в документации по Python, а также самостоятельно провести тестирование, чтобы наконец-то беспрепятственно заставить мои скрипты Python работать на моих машинах с Windows (WinXP и Win7). Итак, я только что написал об этом и вставляю это ниже, на случай, если это будет полезно для других. Извините, это долго, и не стесняйтесь, чтобы улучшить его; Я не эксперт.
[ ОБНОВЛЕНИЕ : Python 3.3 теперь включает в себя Python Launcher для Windows, который позволяет вам вводить py (а не python) для вызова интерпретатора по умолчанию, или py -2, py -3, py -2.7 и т. Д. Он также поддерживает строки shebang , позволяя самому сценарию указать. Для версий, предшествующих 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 (к вашему сведению, это приведет к запуску 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.
python "d:\my scripts\ApplyRE.py" "some lexicon.txt" "some lexicon OUT.txt" -o
pause
Дополнительно: добавление в PYTHONPATH
Обычно в этом нет необходимости, но еще одна переменная среды, которая может иметь значение, - это PYTHONPATH. Если бы мы добавили сценарии d: \ my к этой переменной, то другие сценарии Python в других местах могли бы использовать их через операторы импорта.