Python上的IIS:如何?

我有一个PHP的背景,dotNet,我被Python所迷住了。 我想一步一步地将function从PHP转移到Python,并行运行。 在这个转换过程中,这个过程可能需要两年时间,因为这个应用程序是非常庞大的,所以我必须要IIS。 我有15年的networking编程背景,包括在IIS上的ISAPI模块中的一些C工作,这是我不想再深入的工作。

看来Python在IIS上运行的不好。 我一直在努力与FastCGI(不支持,只为PHP)和PyIsapie (严重logging,无法启动和运行)。 最后我得到了它与HeliconZoo dll运行但是:

我的下一个问题是:如何debugging/开发一个网站? 在PHP中,你安装了一个debugging器,当你的网站出现问题的时候,你只需要debugging它,设置一个断点,逐步检查代码,检查手表等等。 在我看来,这是开发者或疑难解答者最基本的工作types。 我已经买了WingIDE,这是一个优秀的工具和debugging器,但它不能挂在IIS进程中的Python实例出于某种原因,所以没有debugging。 我注意到Helicon使用-O启动Python,所以我甚至重新编译了Python来完全忽略这个标志,但是我的debugging器(WingIDE)不会出现。

我可以在半小时之内在IIS上build立一个PHP'hello world'网站,包括下载时间。 我想我已经花了大约120个小时或更多的时间来为Python工作无济于事。 我已经购买了编程Python学习Python约3000页。 我一直在search,直到我下降。

我认为Python是一门伟大的语言,但我正在放弃我的尝试。 有没有人可以给我一个关于如何在IIS7上设置这一步的一步一步的指示?

我刚刚在5分钟内做了这个。

  1. 确保你有IIS。 运行: %windir%\system32\OptionalFeatures.exe 。 或者,点击clicky:开始…控制面板…程序和function…(然后在左侧)打开或closuresWindowsfunction。 确保在IIS节点下安装CGI。

    在这里输入图像说明

  2. 从python.org 下载Python for Windows 。 我抓住了Python2.7。 如果您有Windows的x64版本,请确保您获得x64版本。

  3. 解压并安装python MSI。 select将python放入c:\Python27的默认值

  4. 创build一个目录来保存你的“开发”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. 打开IISpipe理器。 运行%windir%\system32\inetsrv\iis.msc ,或通过控制面板执行此操作:开始…控制面板…pipe理工具… Internet信息服务(IIS)pipe理器。 创build一个新的应用程序 指定虚拟path为/py ,物理path为c:\dev\python

    在这里输入图像说明

    在这里输入图像说明

  7. 在该IIS应用程序中,为*.py添加脚本映射,并将其映射到c:\python27\python.exe %s %s

    在这里输入图像说明

    在这里输入图像说明

    在这里输入图像说明

  8. c:\dev\python创build一个“HelloWorld.py”文件,内容为:

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

当你用Python开发一个Web应用程序时,你不要使用IIS / Apache / etc。 这些Web服务器仅用于部署。 像Pyramid / Pylons / Django这样的框架都带有内置的Web服务器。 金字塔,尤其是,有很好的文件,这应该会帮助你开始: 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对我来说工作得不错,但是我必须为Python 2.7编译我自己的PyISAPIe.dll。

只要确保持有cgi脚本的path没有空格或&。

我尝试了很多天的事情,没有任何工作,然后我改变了path,它的工作