0

我是新手transcrypt。我创建了一个测试python文件,test.py

def test_def(a: list):      
    for i in range(len(a)):
        print(i)

xx = [2, 3, 4]
test_def(xx)

我有python 3.9。如果我运行 python 文件,它会按预期运行和打印。

运行 transcrypt 会出现以下错误

> python -m transcrypt -b -m -n .\test.py
Error while compiling (offending file last):
        File 'test', line 2, namely:

        Error while compiling (offending file last):
        File 'test', line 2, namely:


Aborted

我不确定它期望什么以及为什么会出现错误,任何帮助将不胜感激。

4

1 回答 1

1

您使用的是什么版本的 Transcrypt?无法使用 Python 3.9.0 和 Transcrypt 3.9.0 复制错误。您可以像这样检查(赢):

> transcrypt -h | find "Version"
# and may as well double check that the right version of python was used:
> python --version

Python 和 Transcrypt 版本应该匹配,因为 Transcrypt 使用 Python 的 AST,它可能会在版本之间发生变化。

另一方面是我首先将 Transcrypt 安装到虚拟环境中,如下所示(Win):

> py -3.9 -m venv wenv
> wenv\Source\activate.bat
> pip install transcrypt
> python -m transcrypt -b -m -n test.py

有时会发生无意中使用了错误版本的 Python。'py' 是 Windows 上的 Python 启动器,如果您安装了多个版本,则可用于启动正确的版本。在 Linux 上,/usr/bin 中通常有二进制文件,例如“python3.9”或链接到最新 3 版本的“python3”等符号链接。如演示的那样安装到虚拟环境中也很有帮助,因为否则可能会出现各种问题。

上面编译的test.py没有错误(Win 10 cmd.exe)。Fwiw,该文件被保存为 utf-8 并且可以在有和没有 BOM 的情况下进行编译。

于 2021-07-31T08:00:47.537 回答