【发布时间】:2021-12-08 09:16:17
【问题描述】:
我想调用一个 python 脚本,它有一个函数,这个函数需要一个参数。您能否建议如何使用来自 Julia 环境的参数从 Julia 终端调用此 python 脚本。
我试过 pyimport, py"""run code""", exec,但不幸的是我还没有找到解决方案。
示例:
假设我有一个文件 my_test.py,我想从 Julia 运行它。
my_test.py 只包含一个函数和执行如下所示:
def print_one_number(my_number):
print(my_number)
return my_number
print_one_number(my_number)
在 Julia 中,我有一个变量 my_number_to_print。
现在我想使用在 Julia 环境中定义的参数 my_number_to_print 从 Julia 终端运行 .py 脚本。我该怎么做?
谢谢!
附:如果我们不需要将任何参数从 Julia “转移”到 .py 脚本,那么下面的效果很好: py"""exec(open("my_simple_test.py").read())"""
【问题讨论】:
-
您是否在任何地方收到 --
TypeError: print_one_number() missing 1 required positional argument: 'my_number'-- 消息,如果您自己运行该 Python 脚本会发生这种情况。 -
您定义了
def print_one_number(my_number):,因此您必须将其作为print_one_number(some_value)运行。如果您运行print_one_number(),那么您应该会收到错误消息。 -
在控制台/终端中运行时是否收到错误消息?始终将有问题的完整错误消息(从“Traceback”一词开始)(不在 cmets 中)作为文本(不是屏幕截图,不链接到外部门户)。还有其他有用的信息。
-
@BatWannaBe,抱歉,这只是心理捷径。谢谢你指出这一点。我在这里添加了参数“print_one_number(my_number)”,所以现在更精确了。
-
@furas,抱歉,这只是心理捷径。谢谢你指出这一点。我在这里添加了参数“print_one_number(my_number)”,所以现在更精确了。一般来说,我没有包含错误消息,因为我尝试了数十种不同的方法并且没有一种方法有效,所以我现在正在寻找如何从 Julia 终端运行 .py 脚本的通用解决方案,同时考虑到 .py 脚本期望在 Julia 环境中定义的一个变量。