【问题标题】:Issue calling Python script from Matlab process in cron在 cron 中从 Matlab 进程调用 Python 脚本的问题
【发布时间】:2017-06-04 08:21:09
【问题描述】:

我已经自动化了一个脚本来将文件上传到网页。生成文件的脚本是用 Matlab (2013a) 编写的,文件通过使用system 命令从 Matlab 脚本调用的 python 函数上传到网页。 python 脚本使用 selenium。

当我从 Linux 命令行启动 Matlab 脚本时,它可以完美运行,但是当我将此脚本放入 cron 文件时,由于 python 的问题,它会失败。导入 webdriver 时收到错误消息,这是消息(作为 python 函数输出的一部分):

from selenium import webdriver

from selenium import webdriver ImportError: No module named selenium

我在脚本中添加了以下行只是为了知道 selenium 包的位置:

print webdriver.__file__

当我从 shell 调用 Matlab 脚本时得到这个:

/home/myself/anaconda2/lib/python2.7/site-packages/selenium/webdriver/init.pyc

那么,从命令行调用脚本和从 cron 文件调用这个函数有什么区别呢?

从命令行:

myself@server:~$ matlab2013b -nodesktop -nosplash -r OP_SCRIPT('A','B','C')

来自 cron 文件:

00 16 * * * myself matlab2013b -nodesktop -nosplash -r OP_SCRIPT('A','B','C')"

感谢您的帮助!

【问题讨论】:

  • 可能你应该先在cron中设置Python路径。

标签: python linux matlab python-2.7 cron


【解决方案1】:

我终于解决了从matlab调用python函数时添加python解释器的完整路径的问题:

[status, cmd_out] = system(['/home/myself/anaconda2/bin/python ',path_py,'sendFile.py "' filename '" "' path_py '"']);

而不是我之前所做的:

[status, cmd_out] = system(['python ',path_py,'sendFile.py "' filename '" "' path_py '"']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2020-06-01
    相关资源
    最近更新 更多