简要总结:在托管在 IIS 服务器上的网站上,独立 Python 文件正确呈现,但在 .aspx 页面中使用 Python(与 VB 相反)会导致错误,指出 Python 不是受支持的语言,尽管已经(显然)向 ActiveX 脚本引擎注册了它。我想让 Python 成为一种受支持的语言。
更多细节:我有一个托管在 IIS 6.1 服务器上的网站,它可以正确解释和显示 .aspx 文件。我希望在 .aspx 文件中使用 Python 作为一种语言,而不是像我到目前为止所使用的 VB。
我已经设法让独立的 Python 页面正确呈现 - 例如,网站上包含以下代码的文件:
print 'Content-type: text/html'
print
print '<HTML><HEAD><TITLE>Python Sample CGI</TITLE></HEAD>'
print '<BODY>'
print '<H1>This is a header</H1>'
print '<p>' #this is a comment
print 'See this is just like most other HTML'
print '<br>'
print '</BODY>'
( source ) 在网络浏览器中请求时正确呈现,如
这是一个标头
看看这就像大多数其他 HTML
但是,当我尝试将 Python 代码嵌入 .aspx 页面时,如下所示:
<%@ Page Language = "Python" %>
<%
Response.Write("Python lives in the ASP delimeters!")
%>
<br />
<script language="Python">
document.write("Python's throwing a party on the client-side!")
</script>
<br />
<script language="Python" runat="server">
Response.Write("Python gets ready to rumble inside a server-side scripting block!")
</script>
(来源)我收到以下错误:
(请注意,我在示例代码的第一行中添加了“Page” - 我已经尝试了有无,两次都得到相同的错误)
看来我需要将 Python 注册为在 .aspx 文件中使用的语言。有人对我可能遗漏的内容有任何提示吗?我遵循了上面第一个链接中的所有步骤(尽管我使用的是 ActivePython 而不是 CPython),这使我进入了正确呈现 .py 文件的阶段,但遗憾的是,这个(否则很好)答案到此为止。
我已经运行了 C:\Python27\Lib\site-packages\win32comext\axscript\client\pyscript.py,它输出“Registered: Python”,但是 C:\Python27\Lib\site-packages\win32comext\axscript\Demos \client\asp\tut1.asp 呈现为空白页面,而不是我期望从源代码中获得的 5 个越来越大的“Hello World”。我在这里看到了在调试模式下运行 pyscript 的建议,但我找不到如何查看输出。
我还查看了 Microsoft 知识库上的此页面,该页面似乎有些过时 - 例如,选项/选择的一些描述已更改名称或位置。
编辑:我看到了一些建议(这里、底部和这里)声称问题出在 ActivePython 的最新版本上。我正式卸载了 ActivePython,下载了 CPython 2.7 和 Win32 扩展,并再次完成了整个过程,结果相同 - .py 文件正确呈现,但尝试在 .aspx 文件中使用 Python 会出现错误“Python 不是支持的语言”。