【问题标题】:invalid syntax in Python functionPython 函数中的语法无效
【发布时间】:2018-03-15 10:14:18
【问题描述】:
[joepareti54@xxx build]$ ./manta ../scenes/_trainingData.py --dim 3 --addModelGeometry True --addSphereGeometry True
Version: mantaflow 64bit fp1 commit dd3bb0c0a65cc531d3c33487bde5edcb4aa6784f from Mar 14 2018, 14:53:44
Loading script '../scenes/_trainingData.py'
Traceback (most recent call last):
  File "../scenes/_trainingData.py", line 12, in <module>
    from Emitter import *
  File "/home/joepareti54/FluidNet/manta/scenes/Emitter.py", line 15, in <module>
    import matlabnoise
  File "/home/joepareti54/FluidNet/manta/build/../../../matlabnoise/matlabnoise.py", line 81
    def Perlin2D(*args) -> "double" :
                        ^
SyntaxError: invalid syntax

我认为无效语法发生在:

def Perlin2D(*args) -> "double" :`enter code here`
  return _matlabnoise.Perlin2D(*args)
Perlin2D = _matlabnoise.Perlin2D

【问题讨论】:

  • 您正在以与脚本要求不兼容的 Python 版本运行脚本。
  • 谢谢大家,也谢谢你格式化我的帖子......我不太确定:[joepareti54@xxx build]$ which python /anaconda/envs/py35/bin/python [joepareti54@xxx build ]$ 但是重命名上述定义是无关紧要的,即 ./manta 命令返回完全相同的错误

标签: python function syntax


【解决方案1】:

您的问题是 mantaflow 正在运行嵌入式 Python,因此使用的版本是编译 mantaflow 时可用的版本,并且该版本似乎不支持 Python 3.5 中引入的类型注释

当您运行 which python 时,它会显示您系统上安装的 Python 版本,而不是编译到其他程序中的版本。

解决方案包括使用更新的 Python 重新编译 mantaflow,或停止使用类型注释。

【讨论】:

  • 谢谢:因为构建 manta 的第一步涉及使用 cmake,所以我发现了以下提示来指定另一个 python 版本——为了避免搞砸,还没有尝试过——@987654321 @
  • 任何人都可以提出一个python 2 - 兼容重写上面列出的函数“def Perlin2D” --- Thx
  • @josephpareti,只需删除 -&gt; "double",它应该可以在 Python2 上运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-13
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多