【发布时间】:2012-12-30 21:49:21
【问题描述】:
当我想使用 virtualenv(1.8.2) 和 virtualenvwrapper(3.6) 在虚拟环境中工作时,我只需运行 workon my_project。但是,我无法使用 crontab 或 gnome-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,然后从系统环境执行程序。有关此命令的更多信息,请查看here。
编辑
@Zaar Hai:在我的/home/myusername/.bashrc 中发起virtualenvwrapper 这个:
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\""
但我仍然得到与您在评论中发布的相同的输出。
【问题讨论】:
-
我认为这个问题既适用于
stackoverflow,也适用于superuser:stackoverflow.com/faq#questions。 (程序员常用的软件工具) -
忘记
workon和activate。使用 virtualenv 的 python 的绝对 python 路径,让任务更轻松、更安全地完成。喜欢:/home/myusername/.virtualenvs/myproject/bin/python task.py
标签: python virtualenv crontab gnome-terminal virtualenvwrapper