VirtualEnv中的Python错误
我有一个脚本,它应该由crontab每天运行一次。这在我的桌面上很好用。但当我尝试在我的RPi上的virtualenv上运行它时,会出现以下错误:VirtualEnv中的Python错误,python,django,virtualenv,raspberry-pi,Python,Django,Virtualenv,Raspberry Pi,我有一个脚本,它应该由crontab每天运行一次。这在我的桌面上很好用。但当我尝试在我的RPi上的virtualenv上运行它时,会出现以下错误: Traceback (most recent call last): File "mailalert.py", line 7, in <module> from django.contrib.auth.models import User File "/usr/local/lib/python2.7/dist-packag
Traceback (most recent call last):
File "mailalert.py", line 7, in <module>
from django.contrib.auth.models import User
File "/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/contrib/auth/__init__.py", line 5, in <module>
from django.middleware.csrf import rotate_token
File "/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/middleware/csrf.py", line 16, in <module>
from django.utils.cache import patch_vary_headers
File "/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/utils/cache.py", line 26, in <module>
from django.core.cache import get_cache
File "/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/core/cache/__init__.py", line 70, in <module>
if DEFAULT_CACHE_ALIAS not in settings.CACHES:
File "/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/conf/__init__.py", line 53, in __getattr__
self._setup(name)
File "/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/conf/__init__.py", line 46, in _setup
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
问题出在哪里?DJANGO\u设置\u模块
在导入DJANGO代码之前,您需要在mailalert.py
脚本中配置DJANGO\u设置\u模块
环境变量
以下是您如何做到这一点:
#!/usr/bin/env python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "benchmarks.settings")
# Do you thing now.
虚拟的
请注意,您的代码现在可能没有在virtualenv中运行,包路径(/usr/local/lib
不是您的virtualenv)证明了这一点:
DJANGO\u设置\u模块
在导入DJANGO代码之前,您需要在mailalert.py
脚本中配置DJANGO\u设置\u模块
环境变量
以下是您如何做到这一点:
#!/usr/bin/env python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "benchmarks.settings")
# Do you thing now.
虚拟的
请注意,您的代码现在可能没有在virtualenv中运行,包路径(/usr/local/lib
不是您的virtualenv)证明了这一点:
您是否在
virtualenv
中安装了Django?看起来你没有。进入virtualenv
并运行pip--freeze
检查crontab条目的外观如何?是否在virtualenv
中安装了Django?看起来你没有。进入您的virtualenv
并运行pip--freeze
检查crontab条目的外观如何?谢谢。如何更改此路径或在virtualenv中运行脚本?好的,。。我通过bin/acitvate进入我的virtualenv并运行脚本。但仍然存在一个问题:raise未正确配置(“settings.DATABASES未正确配置。”django.core.exceptions.ImpropertlyConfigured:settings.DATABASES配置不正确。请提供引擎值。有关详细信息,请查看设置文档。谢谢。如何更改此路径或在virtualenv中运行脚本?好的,…我通过bin/acitvate进入我的virtualenv并运行脚本。但仍然存在一个问题:引发配置不正确(“settings.DATABASES配置不正确。”django.core.exceptions.ImproperlyConfigured:settings.DATABASES配置不正确。请提供引擎值。有关详细信息,请查看设置文档。
"/usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/contrib/auth/__init__.py"