3

当我想使用virtualenv(1.8.2)virtualenvwrapper(3.6)在虚拟环境中工作时,我只需运行workon my_project. 但是,我无法使用crontaborgnome-terminal从虚拟环境执行命令:

例子:

* * * * * workon my_project && python task.py

这没有被执行。(任务写入文件)

或者

gnome-terminal --tab -e "bash -c \"workon my_project;python task.py;exec bash\"" 这只是显示bash: workon: command not found然后从系统环境执行程序。在这里查看有关此命令的更多信息。

编辑

@Zaar Hai:virtualenvwrapper在我的/home/myusername/.bashrc

export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true

所以我尝试了这个命令:

gnome-terminal --tab -e "bash -c \"export WORKON_HOME=~/.virtualenvs;source /usr/local/bin/virtualenvwrapper.sh;export PIP_VIRTUALENV_BASE=$WORKON_HOME;export PIP_RESPECT_VIRTUALENV=true;source /home/myusername/.virtualenvs/my_project/bin/activate;exec bash\""

但是我仍然得到与您在评论中发布的相同的输出。

4

1 回答 1

4

通过 crontab:

0 10 * * * env -i bash -c 'export WORKON_HOME=~/.virtualenvs && source /usr/local/bin/virtualenvwrapper.sh && workon my_project && python task.py'

通过 gnome 终端:

gnome-terminal --tab -e 'bash -c "export WORKON_HOME=~/.virtualenvs && source /usr/local/bin/virtualenvwrapper.sh && workon my_project && python task.py " '

最好只创建一个 runme.sh 脚本:

#/bin/sh
set -e
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
workon my_project
exec python task.py

并通过 gnome 终端/crontab 运行此脚本。

于 2013-01-16T14:40:17.313 回答