IIS上的Python:how?

2024-04-29 02:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有PHP、dotNet的背景,对Python很着迷。我想一步一步地将功能从PHP转换到Python,并排运行。在这个过渡期间,可能需要两年,因为应用程序是巨大的,我一定要IIS。我有15年的web编程背景,包括在I is上的ISAPI模块中的一些C工作,这是我不想再深入研究的工作。

看起来Python在IIS上运行得不好。我一直在与FastCGI(不受支持,仅适用于PHP)和PyIsapie(文档记录糟糕,无法启动和运行)作斗争。最后,我用一个HeliconZoo dll启动并运行它,但是:

我的下一个问题是:如何调试/开发站点?在PHP中,你安装了一个调试器,当你的网站有问题时,你只需调试它,设置一个断点,单步执行代码,检查监视等等。在我看来,这是开发人员或疑难解答人员最基本的工作类型。我买了WingIDE,它是一个很好的工具和调试器,但是由于某些原因,它不能钩住I is进程中的Python实例,所以没有调试。我注意到Helicon用-O启动Python,所以我甚至重新编译Python以完全忽略这个标志,但是我的调试器(WingIDE)不会出现。

我可以在半小时内(包括下载时间)在IIS上建立一个PHP“hello world”网站。我想我已经花了大约120个小时或者更多的时间让它为Python工作,但没有效果。我买了编程Python学习Python大约3000页。我一直在谷歌上搜索直到我掉下来。

我认为Python是一种很棒的语言,但我的尝试即将流产。有没有人可以一步一步地教我如何在IIS7上设置这个程序?


Tags: 模块功能web应用程序is网站编程时间
3条回答

只需确保保存cgi脚本的目录路径没有空格或&;即可;。

我试了很多东西很多天都没有成功,然后我改变了道路,成功了

我只花了5分钟。

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

    enter image description here

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

  3. 解包并安装python 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,或通过控制面板执行此操作:开始…控制面板…管理工具…Internet信息服务(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. c:\dev\python中创建一个“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。

相关问题 更多 >