【问题标题】:Django: error with logging module when running any manage.py commandDjango:运行任何 manage.py 命令时出现日志记录模块错误
【发布时间】:2013-11-08 18:30:36
【问题描述】:

OSX、Python 2.7、pip、virtualenv。多年来一直使用这些,没有任何问题。

我不确定发生了什么变化,但最近我的环境在 Django 工作了一段时间后完全崩溃了。相同的结帐在我朋友的计算机上运行良好,设置类似。

我已经尝试过的事情:删除我的 venv 并使用 requirements.txt 中的全新安装创建一个新的,卸载 venv 外部的日志记录并在内部重新安装,重新安装 pip。

对于任何 manage.py 命令,我都会得到相同的回溯。日志模块似乎有问题:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/core/management/__init__.py", line 453, in     execute_from_command_line
    utility.execute()
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/core/management/__init__.py", line 376, in execute
    sys.stdout.write(self.main_help_text() + '\n')
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/core/management/__init__.py", line 242, in main_help_text
    for name, app in six.iteritems(get_commands()):
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/core/management/__init__.py", line 109, in get_commands
    apps = settings.INSTALLED_APPS
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/conf/__init__.py", line 52, in __getattr__
    self._setup(name)
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/conf/__init__.py", line 48, in _setup
    self._configure_logging()
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/conf/__init__.py", line 75, in _configure_logging
    logging_config_func(DEFAULT_LOGGING)
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/utils/dictconfig.py", line 555, in dictConfig
    dictConfigClass(config).configure()
  File "/Users/rfong/Dropbox/code/lattis_workspace/lattis_repo/venv/lib/python2.    7/site-packages/django/utils/dictconfig.py", line 323, in configure
    del logging._handlerList[:]
AttributeError: 'module' object has no attribute '_handlerList'

【问题讨论】:

  • 您可以尝试在错误发生前检查logging.__file__ 的值,以找出正在使用的日志记录模块。你的 pythonpath 上没有文件 logging.py somwhere 吗?
  • 啊,忘了说 logging.__file__ = /Library/Python/2.7/site-packages/logging-0.4.9.6-py2.7.egg/logging/__init__.pyc

标签: python django module pip


【解决方案1】:

您似乎安装了过时的0.4.9.6 版本的日志记录模块,大概是pip。 python 2.7附带的正确版本是0.5.1.2,我想你的情况可能位于/Library/Python/2.7/lib/logging。正确版本可以从python svn上传。

如果你使用 pip,你总能找出安装了哪些模块版本

$ pip freeze

为确保安装了正确版本的软件包,请使用以下语法:

$ pip install <package>==<version>

这将为您省去很多痛苦和努力,并且在生产环境中几乎是必须的。

【讨论】:

  • 我无法在 2.7 库或 pypi 中找到 0.5.1.2。有没有办法让它不重新安装python?
  • 糟糕,没有看到您的链接。感谢您的提示,当我将该版本的日志记录放在我的 venv 站点包中时,它就可以工作了!但我不确定如何正确安装它,因为它缺少 setup.py。那里的适当程序是什么?
  • 没有properly install procedure 这样一个没有构建过程的简单模块。你可以把它放在 python/lib 中(因为它应该在那里)或 venv
猜你喜欢
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
  • 2020-10-18
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
相关资源
最近更新 更多