Подтвердить что ты не робот

Python на IIS: как?

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

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

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

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

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

4b9b3361

Ответ 1

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

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

    enter image description here

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

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

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

  • Установите разрешения для файлов в каталоге 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)"
    
  • Откройте диспетчер IIS. Запустите %windir%\system32\inetsrv\iis.msc или сделайте это через панель управления: Пуск... Панель управления... Администрирование... Менеджер информационных служб Интернета (IIS). Создайте новое приложение. Укажите виртуальный путь как /py и физический путь как c:\dev\python.

    enter image description here

    enter image description here

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

    enter image description here

    enter image description here

    enter image description here

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

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

Ответ 2

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

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

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

Ответ 3

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

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