3
<!DOCTYPE html>
<html>
<head>
  <title>Hello World</title>
  <style type="text/css">
    body {background: #fff;}
  </style>
</head>
<body>
  <h1>Hello World</h1>
    <script type="text/python" src="test.py"/>
      <script type="text/javascript"> 
        window.onload=function(){
            alert("python: " + hello());
        }
    </script>
</body>
</html>

测试.py

#!/usr/bin/env python

def hello():
    return "hello"

在 TideSDK 开发中说:[Error] An error occurred while paring Python on page:invalid syntax ,('',2,1,'\r\n')

但这有效!为什么?

    <script type="text/python">
    def hello():
        return "hello"
    </script>
      <script type="text/javascript"> 
        window.onload=function(){
            alert("python: " + hello());
        }
    </script>

我是 TideSDK 新手,我的电脑是 WIN7 x86 和 python2.7.3,安装了 TideSDK 1.3.1-beta,我不知道这个问题,请帮助。

我尝试更改 test.py 编码,但无济于事

4

5 回答 5

1

我有同样的问题。不幸的是,我还没有找到最好的解决办法。然而,在每个 html 文件中实现源代码对我来说完全不可能。

错误是抱怨行尾。我想像我一样在 Windows 中工作,所以行尾如下:\r\n. TideSDK 为外部 python 文件编写了某种解析器,但出于任何原因完全忽略了 windows 行尾(并保持了 unix 风格的行尾)。出现\r\n奇怪的无法解析的语法并停止读取文件的其余部分。在他们修复这个故障之前,我只能看到一个选项。将所有外部 python 文件的行尾从 更改\r\n\n.

如果它支持新行替换,您可以使用您最喜欢的 IDE 来执行此操作。或者,如果它不支持更改换行符,则可以使用 python 文件替换所有换行符,如下所示:

fn = 'main.py'
with file(fn, 'rb') as f:
    data = f.read()
with file(fn, 'wb') as f:
    f.write(data.replace('\r\n', '\n'))

但是,如果您选择第二条路线,则每次保存文件时都将被迫运行此脚本。

如果我找到更好的答案,我会告诉你。

于 2013-03-12T21:05:20.867 回答
1

我们正在解决这个问题。我们计划与 1.3.2-beta 一起发布的较新的 php 应该可以解决这个问题。

于 2013-02-06T03:10:55.753 回答
0

我的问题是在 def action() 之前有空行:

我有一个首先出现的导入,但它似乎不喜欢 def 之前的空行

于 2013-10-17T17:32:07.670 回答
0

尝试删除 #! python 文件中的行,无论如何它对 TideSDK 并没有真正的用处。

于 2013-02-05T11:05:10.740 回答
0

我在 Windows 上使用 eclipse 时遇到了这个问题。看来 TideSDK python 解释器需要 Unix 样式的行分隔符(即告诉计算机将文本放在新行上的不可打印字符)

Windows 使用两个字符“\r\n”(回车和换行),而 unix 仅使用换行符。因此,如果您在 Widows 上使用文本编辑器,很可能每次您点击“enter”或“return”时它都会插入“\r\n”。

如果您使用 Eclipse 作为文本编辑器,则修复方法是

File -> Convert Line Delimiters To 

并选择 Unix。

要使文本编辑器对所有新文件执行此操作,请在

Window -> Preferences -> General -> Workspace -> New text file line delimiter.

希望这可以帮助

于 2013-11-09T02:24:52.570 回答