在 Ruby 模式下打开 Python 脚本无效

Opening Python script in Ruby mode is not working

正在尝试 Python 3.9 中的新 "Ruby Mode",但无法正常运行:

mymodule中的简单脚本:

puts "Hello World"

在 ruby 模式 ("rb") 中执行文件时的预期输出是 "Hello World" 打印在标准输出上,但我收到错误:

>>> with open("mymodule", mode="rb") as f:
...     for line in f:
...         exec(line)
...
Traceback (most recent call last):
  File "<string>", line 1
    puts "Hello World"
                     ^
SyntaxError: invalid syntax

看起来这些行被正确解析为 rb"ruby style lines",所以显然 open 没有错:

>>> line.strip() == rb'puts "Hello World"'
True

这是怎么回事?那一定是 exec 中的错误,对吧?

运行 Ruby 模式下的文件必须由 Ruby shebang 引导。尝试使用:

#!/usr/april/fools/ruby
puts "Hello World"