问题描述
我正在尝试创建一个 Shiny 应用程序,用户将从下拉菜单中选择一个短字符串,然后将该字符串传递给 Python 脚本,该脚本将输出一些将在闪亮应用程序中使用的值。
使用具有硬编码所需值的 reticulate 的 py_run_file
函数效果很好。但是,使用此:
py_run_file('test_script.py arg1')
给出:
py_run_file_impl(file,local,convert)
中的错误:
无法打开文件“test_script.py arg1”(是否存在?)
几个线程建议使用 system()
调用来运行带有命令行参数的 .py
脚本,但我认为这对于目标来说是不可行的,因为参数需要能够改变。其他线程建议创建一个 python 文件,该文件使用带参数的 os.system()
调用原始 python 文件,但这也不适用于我的情况。
有人有什么想法吗?
谢谢
解决方法
如果其他人在此问题上苦苦挣扎:我找到了解决方法。
我没有向 python 脚本提供参数,而是创建了一个 R 全局环境变量,然后在 python 脚本中调用它。
没想到你可以通过python脚本中的r.RVar
之类的调用来引用R环境变量,类似于在R脚本中调用python变量时的py$PythonVar
。