【发布时间】:2015-03-07 14:43:42
【问题描述】:
我正在尝试使用 cron 安排 django 命令的执行,在 virtualenv 中执行。我正在安排一个脚本的执行,我在其中激活你的 virtualenv 然后执行命令。
问题是,当尝试激活 virtualenv 时,它会引发错误没有这样的文件或目录。
/opt/django/myproj/myapp/cron/myscript.sh: line 2: /opt/virtualenvs/myvirtualenv
/bin/activate
: No such file or directory
Traceback (most recent call last):
File "/opt/django/myproj/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 261, in fetch_command
commands = get_commands()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 107, in get_commands
apps = settings.INSTALLED_APPS
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 54, in __getattr__
self._setup(name)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 49, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 132, in __init__
% (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'myproj.settings
' (Is it on sys.path? Is there an import error in the settings file?): No module named settings
这就是我所拥有的:
CRON 作业:
* * * * * bash /opt/django/myproj/myapp/cron/myscript.sh > /opt/django/myproj/log/myscript.log 2>&1
MYSCRIPT.SH(简体)
1 #!/bin/bash
2 source /opt/virtualenvs/myvirtualenv/bin/activate
3 python /opt/django/myproj/manage.py testcommand
MYSCRIPT.SH(原始脚本,结果相同)
1 #!/bin/bash
2 SHELL=/bin/bash
3 DJANGO_SETTINGS_MODULE=myproj.settings
4 VIRTUALENV_DIR='/opt/virtualenvs/myvirtualenv'
5 export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
6 export PYTHONPATH=${VIRTUALENV_DIR}:${PYTHONPATH}
7 source ${VIRTUALENV_DIR}/bin/activate
8 python /opt/django/myproj/manage.py testcommand
任何帮助将不胜感激。
【问题讨论】:
-
#!/bin/bash 应该排在第一位,不是吗?
-
对的,我改了但是没改,还是有错误
标签: django cron virtualenv