Python на IIS: как? - PullRequest
       21

Python на IIS: как?

57 голосов
/ 26 июля 2011

У меня есть опыт работы с PHP, dotNet, и я очарован Python.Я хочу шаг за шагом перенести функциональность из PHP в Python, выполняя биты и кусочки бок о бок.Во время этого перехода, который может занять 2 года, так как приложение огромно, я связан с IIS.У меня 15-летний опыт веб-программирования, включая некоторую работу на C в модуле ISAPI на IIS. Это та работа, в которую я больше не хочу углубляться.

Кажется, что Python просто нене работает на IIS.Я боролся с FastCGI (не поддерживается, только для PHP) и PyIsapie (плохо документирован, не смог его запустить и запустить).В конце концов я запустил его и запустил с DLL HeliconZoo, НО:

Моя следующая проблема: как отладить / разработать сайт?В PHP вы устанавливаете отладчик и всякий раз, когда у вас возникает проблема на вашем сайте, вы просто отлаживаете его, устанавливаете точку останова, просматриваете код, проверяете часы и тому подобное.Мне кажется, это самый элементарный тип работы для разработчика или устранения неполадок.Я купил WingIDE, который является отличным инструментом и отладчиком, но по какой-то причине он не может подключиться к экземпляру Python в процессе IIS, поэтому не нужно отлаживать.Я заметил, что Helicon запускает Python с -O, поэтому я даже перекомпилировал Python, чтобы полностью игнорировать этот флаг, но мой отладчик (WingIDE) просто не запускается.

Я могу настроить PHP-сайт "Hello World" наIIS через полчаса, включая время загрузки.Я думаю, что потратил около 120 часов или больше, чтобы заставить это работать на Python безрезультатно.Я купил Python для программирования и Learning Python , что составляет около 3000 страниц.И я гуглил, пока не упал.

Я думаю, что Python - отличный язык, но я нахожусь на грани прекращения моих попыток.Есть ли кто-нибудь, кто может дать мне пошаговую инструкцию, как настроить это на IIS7?

Ответы [ 3 ]

128 голосов
/ 17 марта 2012

Я только что сделал это за 5 минут.

  1. Убедитесь, что у вас есть IIS. пробег: %windir%\system32\OptionalFeatures.exe. Или с помощью заостренного щелчка: Пуск ... Панель управления ... Программы и компоненты ... (а затем с левой стороны) Включите или выключите компоненты Windows. Убедитесь, что CGI установлен под узлом IIS.

    enter image description here

  2. Загрузите Python для Windows с сайта python.org. Я схватил Python2.7. Убедитесь, что у вас установлена ​​версия x64, если у вас версия x64 для Windows.

  3. Распакуйте и установите этот питон MSI. Выберите значение по умолчанию, которое помещает python в c:\Python27

  4. Создайте каталог, в котором будут храниться ваши сценарии разработки "python". Например, c:\dev\python

  5. Установите разрешения для файлов в каталоге c:\dev\python, чтобы разрешить IIS читать и выполнять. Сделайте это, выполнив эти две команды icacls.exe из командной строки:

    cd \dev\python
    icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
    icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"
    
  6. Открыть диспетчер IIS. Запустите %windir%\system32\inetsrv\iis.msc или выполните это через панель управления: Пуск ... Панель управления ... Администрирование ... Диспетчер служб IIS. Создать новое приложение. Укажите виртуальный путь как /py, а физический путь - c:\dev\python.

    enter image description here

    enter image description here

  7. В этом приложении IIS добавьте карту сценариев для *.py и сопоставьте ее с c:\python27\python.exe %s %s

    enter image description here

    enter image description here

    enter image description here

  8. создайте файл "HelloWorld.py" в c:\dev\python с таким содержимым:

    print('Content-Type: text/plain')
    print('')
    print('Hello, world!')
    
  9. invoke http://localhost/py/helloworld.py

1 голос
/ 23 августа 2014

просто убедитесь, что путь к каталогу, содержащему сценарии cgi, не имеет пробелов или &.

Я пробовал много вещей в течение многих дней, но ничего не получалось, потом я сменил путь, и это заработало

1 голос
/ 26 июля 2011

Когда вы разрабатываете веб-приложение на Python, вы не используете IIS / Apache / и т. Д. Эти веб-серверы предназначены только для развертывания. Такие фреймворки, как Pyramid / Pylons / Django, поставляются со встроенными веб-серверами. Пирамида, в частности, имеет отличную документацию, которая должна помочь вам начать: http://docs.pylonsproject.org/docs/pyramid.html

Когда вы дойдете до точки развертывания, Linux + Apache будет гораздо более разумным выбором, чем Windows + IIS. Если вам абсолютно необходимо использовать Windows + IIS, не используйте isapi-wsgi, так как он имеет проблему с фантомной производительностью: http://groups.google.com/group/isapi_wsgi-dev/browse_thread/thread/9fade6efca6c5b89

PyISAPIe работал достаточно хорошо для меня, но мне пришлось скомпилировать свой собственный PyISAPIe.dll для Python 2.7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...