UcallWeconn

Python для Windows

Original on http://www.imladris.com/Scripts/PythonForWindows.html

You can support UcallWeconn to make more translations to Belorussian by buying cheap international VoIP calls and international virtual DID numbers online

У гэтым дакуменце абмяркоўваюцца некаторыя з распаўсюджаных памылак у атрыманні Python сцэнары пад кіраваннем Windows, з акцэнтам на спрыяльных сцэнараў Python CGI праз Windows Apache.

На PYTHONPATH

Пошук python.exe

Большасць праграм не будзе працаваць з каманднага радка DOS, калі не паказаць поўны шлях да іх выкананыя файлы. Пры запуску Python скрыптоў на Windows, вы сапраўды жадалі б мець магчымасць проста тыпу Python my_script.py з каталога, у якім ваш сцэнар жыцця, замест таго, каб растлумачыць, дзе менавіта Python інтэрпрэтатар знаходзіцца. Каб дазволіць гэту праблему, вам неабходна дадаць Python каталог усталёўкі зменнай асяроддзі шлях на вашай машыне, гэта зменная спіс каталогаў, што Windows будзе аўтаматычна шукаць праз знайсці выкананы файл з назвай Python.

Наступныя інструкцыі прызначаны для Windows 2000, але прынамсі даць вам уяўленне пра тое, з чаго пачаць на іншых версіях. (Звернеце ўвагу, што вы можаце толькі тыя зменныя асяроддзі, калі вы ўвайшлі як машыны адміністратара.) Пстрыкніце правай кнопкай мышы на працоўным стале абразок на вашай машыне (яе Мой кампутар, калі ў вас ёсць не пераназваў яго) і абярыце Уласцівасці. Гэта ўсплывальнае дыялогавае акно сістэмы інфармацыі, націсніце на укладку "Дадаткова", а затым на кнопку Зменныя асяроддзі. У новы дыялог, які з'яўляецца, націсніце на шляхі зменнай у акно Зменныя сістэмы, а затым націсніце кнопку Змяніць.

Змесціце курсор у тэкставае поле Значэнне зменнай, прама перад канчатковым падвойныя двукоссі з радка. Увядзіце кропку з коскі (у асобных папярэдняе значэнне з які вы збіраецеся дадаць), а затым увядзіце адрас Python выкананыя на вашай сістэме - магчыма, штосьці накшталт C: \ Python. Націсніце кнопку ОК, пакуль вы не з усіх скрынкі дыялогу. Зараз, калі вы ўводзіце Python у любой каманды DOS, Windows зможа аўтаматычна знайсці і запусціць выкананы правільна.

Пошук файлаў сцэнара

Зараз, калі вы вучылі Windows, каб знайсці выкананы Python у каталогу ўсталёўкі Python, вы павінны сказаць яму, як знайсці ваш Python сцэнары захоўваюцца ў тэчках, выдатных што, у адваротным выпадку, вашы аператары імпарту Python не атрымаецца, таму што яны выйгралі ведаю, дзе шукаць карыстацкіх модуляў, якія вы жадаеце імпартаваць. Магчымыя модуль месцах задаюцца зменныя асяроддзі PYTHONPATH, які захоўваецца ў рэестры Windows.

Каб павялічыць PYTHONPATH, запусціце рэдактар рэестру і перайдзіце да HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore, а затым абярыце тэчку для Python версіі, якую вы жадаеце выкарыстоўваць. Усярэдзіне гэта тэчкі пазначаны PythonPath, на адзін уваход, які вызначае шляхі, дзе ўсталёўкі па змаўчанні захоўвае модуляў. Пстрыкніце правай кнопкай мышы на PythonPath і вырашылі стварыць новы ключ. Вы можаце назваць ключавыя пасля праекта, модуль месцаў у ёй паказваецца, такім чынам, вы можаце лёгка ўладкованы і адсочваць змены шляху.

Ваш новы ключ будзе мець адзін радок значэнне ўступа, імем (па змаўчанні). Пстрыкніце правай кнопкай мышы на ім і зменіце яго значэнне дадзеных, што павінна быць тэкст у тым жа фармаце, што і зменная асяроддзі Шлях гаварылася вышэй - абсалютныя шляхі каталогаў, падзеленых кропкай з коскі. Калі праект будзе выкарыстоўваць модулі ад некалькіх каталогах, дадаць іх усё ў гэты спіс. (Не турбаваць спробы больш высокім дададзеным коштам запісу радка ў новы ключ, ці арыгінальны ключ PythonPath, бо яны будуць ігнаравацца.) Пасля таго як гэтыя новыя запісы ў рэестры на месцы, сцэнар 'аператары імпарту вашых павінны працаваць звычайна.

CGI з Apache

Я не буду абмяркоўваць Усталёўка Apache; apache.org прапануе добрыя інструкцыі для карыстачоў Windows. Вы напэўна жадаеце, каб вынікаць указанням па наладзе Apache як сэрвіс (замест кансольнага прыкладання), бо ён забяспечвае максімальную да часу і выгода.

Апошнія ўсталёўкі Apache для Windows знайсці ўсе інструкцыі па наладзе ў файле httpd.conf. У Інтэрнэце, вы можаце сапхнуцца старэй кірункаў, якія кажуць вам змяняць змесціва іншых файлаў, такіх як access.conf ці srm.conf - не. Вы можаце (і павінны) рабіць усё гэта ў httpd.conf. Акрамя таго, каб зрабіць жыццё прасцей для пачаткоўцаў, httpd.conf ужо ўтрымоўвае вялікую частку дырэктыў (Apache каманд), якія вы маглі б калі-небудзь спатрэбіцца, напісаная ў якасці каментароў. Каб уключыць іх, проста выдаліце знак каментара # напачатку іх ліній.

Нягледзячы на гэтыя высілкі, накіраваныя на спрашчэнне, якая кіруе Apache па-ранейшаму таемнай і заблытанай мастацтвы. Не бойцеся дадаваць уласныя каментары да httpd.conf файл паказвае, што вы змянілі і чаму, проста як з кодам, вы будзеце дзякаваць сябе пазней. Я настойліва рэкамендую вам дадаць гэты файл у вашай сістэме кіравання версіямі. Гэта дазволіць вам () зваротна да працоўнай версіі вы павінны шрубу яго, і (б) трымаць працуе запіс пра тое, што вы змянілі, каб атрымаць асаблівасць працы - вельмі карысна калі вы калі-небудзь неабходна ўключыць гэту функцыянальнасць на розныя ўсталёўкі.

Асноўныя CGI канфігурацыі

Для таго, каб пераканаць Apache для запуску Python CGI скрыптоў, вам неабходна забяспечыць, каб некалькі дырэктыў на месцы ў httpd.conf. Часта, дырэктывы згрупаваны па каталогах яны ўжываюцца, у <Directory> тэгаў. Корань дакумента па змаўчанні (грамадскія HTML) каталог Windows усталёўвае Apache з'яўляецца /Apache/htdocs, хоць гэта можа быць зменена змяніў яго, звернеце ўвагу на наступны радок (у httpd.conf, вядома!) Мяркуючы, што вы не:

<Directory "/apache/htdocs">

Некалькімі радкамі ніжэй гэта адзін, які пачынаецца са слова Функцыі і суправаджаецца падзелены прабеламі спіс тэрмінаў. Пераканаецеся, што ExecCGI уключаны ў гэты спіс тэрмінаў, гэта будзе гарантаваць, што старонкі Apache служыць дазволена зваць CGI скрыптоў.

Зараз пагледзіце ўніз файл і знайдзіце радок <IfModule mod_mime.c>. Вельмі шматлікія дырэктывы ўключаны, калі гэты модуль ёсць, але ўнізе, сярод спісу вы павінны ўбачыць некалькі радкоў, якія пачынаюцца з тэрмінам AddHandler. Раскаментаваць (ці дадаць, калі пракаментаваў версіі не існуе) наступны:

AddHandler cgi-script .py

Вуаля! Зараз вядома, што Apache. Ру файлы могуць быць CGI скрыптоў, і што вашы старонкі дазволена запускаць іх.

Крос-платформавая прытон

Першая лінія CGI сцэнар прытон лініі, што паказвае на размяшчэнне праграмы, якія павінны быць скарыстаны для інтэрпрэтацыі сцэнара. Калі CGI скрыпты будуць працаваць толькі на Windows, вы можаце выкарыстоўваць Windows-прытон пэўных ліній, якія выглядаюць прыкладна так:

#!c:/Python/python.exe -u

Нататка-U наступныя перакладніка шляху, гэта вельмі важна. Гэта ставіць Python інтэрпрэтатар у "небуферызаваных" рэжыме. Спроба запусціць Python CGI скрыптоў (па змаўчанні) буферным рэжыме або ў выніку поўнай адсутнасці якое вяртаецца значэння з вашага CGI скрыпт (праяўляльнай як пусты HTML старонкі) ці "заўчасны канец загалоўкаў сцэнара" памылка.

Вядома, прытон лініі вышэй, не можа быць скарыстана ў сістэме * NIX Ёсць некалькі спосабаў абыйсці гэту (ці нават сістэмы Windows, дзе Python усталяваны ў іншым месцы.), Напрыклад, вы можаце працаваць па-за секчы на аснове Той факт, што Apache інтэрпрэтуе прытон шляху, як у адносінах да каранёвай дыск, калі не літара дыска падаецца, і берэт на сябе. EXE падаўжэнне, калі ніводны ўключаны ў шлях.#! Такім чынам, usr/bin/env python інтэрпрэтуецца як пошук ENV python.exe (памятаеце, што Windows імёны файлаў могуць утрымоўваць прабелы) у c:/usr/bin. -u сцяг тут адсутнічае, але небуферызаваных паводзіны могуць быць адноўлена з невялікай налады ў файле httpd.conf (гл. ніжэй).

Але пачакайце! Там лепшы спосаб. Apache мае Мяркуецца, што гэта пытанне, і пры ўмове, дырэктывы з ім звяртацца. Адкрыйце файл httpd.conf і раскаментуйце радок, якая абвяшчае

ScriptInterpreterSource registry

Гэта паказвае Apache цалкам ігнараваць прытон лініі. Замест гэтага, ён будзе вывучаць рэестр Windows, каб знайсці праграмы, злучаныя з пашырэннем файла скрыпту (. Ру), і выкарыстоўваць гэту праграму ў якасці перакладніка. Зараз вы мае права ўключыць * NIX стыль хибарка ліній у сцэнары ў цвёрдыя веды, што Windows Apache не будзе спрабаваць чытаць іх. Яшчэ лепш, калі ваш код можа зараз быць перамешчаны ў розныя вокны Windows, на якім усталяваны Python у некаторых нестандартных каталога; тых пор, пакуль рэестру акно адлюстроўвае гэтым месцы, вашы скрыпты будуць працаваць без змен.

А рэжым буферызацыі, праўда? Не Windows-стыль хибарка лінія азначае не-і выключальнік. Httpd.conf на дапамогу зноў. Дадаць ліній

PassEnv PYTHONPATH
SetEnv PYTHONUNBUFFERED 1

у http.conf файл;. Env набор інструкцый ці атрымаць зменныя асяроддзі абалонкі, з якіх скрыпт выклікаецца гэтыя зменныя затым перадаецца на сам скрыпт. Першая інструкцыя праходзіць PYTHONPATH зменнай (гл. абмеркаванне Ўсталёўка гэтай зменнай для Windows вышэй) для сцэнара. Другі мноствы PYTHONUNBUFFERED зменную асяроддзі 1 (праўда), а затым перадае яго ў скрыпт, ствараючы патрэбнае-і паводзіны альтэрнатыўны сродак.

---