从服务器上的 JSL 脚本启动 Python 代码大家好,
在服务器(没有互联网连接)中,我有一个 JSL 脚本,该脚本在某个时候调用 python 脚本(在虚拟环境中)。下面是调用 python 的 JSL 命令。python 存储在 F:\ 磁盘中。
strCommand = “Path\to\virutual_env\.venv\Scripts\activate.bat\!” && python \!“Path\to\python_script.py\!””;
Run Program( Executable( “cmd.exe” ), Options( “/C ” || strCommand ) );
- 如果我直接在服务器命令提示符中运行相同的命令(无论是否处于管理员模式):“Path\to\virutual_env\.venv\Scripts\activate.bat” && python “Path\to\python_script.py\”,它可以工作
- 如果我在我的电脑上运行这个 JSL 代码,它也能运行。
但是,如果我在服务器上运行此 JSL 代码,它就不再起作用了。没有运行 python,但没有错误消息。
供参考:由于我无法访问互联网,对于 python 虚拟环境,我手动将包传输到服务器并激活环境来读取包。
有人遇到过同样的问题吗?
自动化和脚本回复:从服务器上的 JSL 脚本启动 Python 代码您的 PC 和服务器上的路径是否相同?它们中的任一个的路径中是否有空格(使用运行程序时,引号可能会出现一些问题)?开始将问题分解成更小的部分:
- 你能正确访问路径吗?
- 你能运行 Python 吗?
- 您能激活 venv 吗?
- 等等
回复:从服务器上的 JSL 脚本启动 Python 代码你好,
非常感谢!其实问题是路径中有一个空格
回复:从服务器上的 JSL 脚本启动 Python 代码您是如何解决这个问题的?您是否“修复”了文件路径,或者尝试弄清楚如何引用它以便 JMP/命令行了解您要做什么?
回复:从服务器上的 JSL 脚本启动 Python 代码由于我必须快速修复,我首先删除了路径中的空格。我必须承认,之后我没有再回过头来讨论这个问题……但我正在与 JMP 支持人员讨论。他们建议使用 JMP18 中的 Python,但他们不支持虚拟环境,因此您必须直接从他们那里安装软件包版本。而且我有一些客户目前“只”使用 JMP 17,他们也想要同样的东西。我会及时通知您
回复:从服务器上的 JSL 脚本启动 Python 代码将引文传递到运行程序应用程序有一个选项。当我必须将引文传递到运行程序时,我使用过类似的方法,如果我没记错的话,还有其他一些方法。
回复:从服务器上的 JSL 脚本启动 Python 代码https://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328 (在无法使用 RunProgram 将语音标记“”解析到 powershell 中)有链接,解释了为什么 windows 命令行引用如此困难。删除路径名中的空格是一个很好的选择。