Car*_*izz 1 python bash shell cron anaconda
我正在尝试运行以下 bash 脚本,该脚本在激活 conda 环境后运行 Python 程序。
发送.bash
#!/bin/bash
source activate manage_oam_users
python ~/path/to/script/send.py
source deactivate
Run Code Online (Sandbox Code Playgroud)
定时任务表
30 * * * * source /path/to/script/send.bash
Run Code Online (Sandbox Code Playgroud)
尽管运行source send.bash正常,但我从 cron 收到以下错误。我也试过使用bash send.bashwhich 在手动运行时工作正常,但从 cron 运行时会导致相同的错误。
#!/bin/bash
source activate manage_oam_users
python ~/path/to/script/send.py
source deactivate
Run Code Online (Sandbox Code Playgroud)
activate并且deactivate可能是位于$PATH变量中某个条目指向的某个位置的脚本。通常,为一个用户本地安装的软件会向您的.profile文件添加语句或.bashrc扩展您的$PATH变量,以便您可以在不使用完整路径的情况下使用该软件的脚本。
当你的bash的负载.profile和.bashrc自动,cron将会那样做。至少有两种解决方案。
您可以在 CRON 作业执行的脚本中使用完整路径,如下所示:
#!/bin/bash
source /path/to/activate manage_oam_users
python $HOME/path/to/script/send.py
source /path/to/deactivate
Run Code Online (Sandbox Code Playgroud)
也使用$HOME代替~. 您可以在 shell 中使用which activate和找出完整路径which deactivate。
.profile或.bashrc或者,您可以在 CRON 选项卡中获取.profile(或.bashrc;您必须查看哪个文件$PATH使用 anaconda 目录扩展了您的变量):
30 * * * * source $HOME/.profile; source /path/to/script/send.bash
Run Code Online (Sandbox Code Playgroud)
source是一个 Unix 命令,它评估命令后面的文件,作为在当前上下文中执行的命令列表。
source命令的常用别名是单点 ( . /path/to/script)。
可以在 UNIX 和 Linux Stack Exchange 上找到相关但更通用的问题。
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |