【问题标题】:Issue when upgraded Django from 1.6.5 to 1.8.4将 Django 从 1.6.5 升级到 1.8.4 时出现问题
【发布时间】:2015-09-18 10:30:01
【问题描述】:

我是 Django Upgrade 的新手,我尝试将版本从 1.6.5 升级到 1.8.4。我使用 sudo python setup.py install 手动安装了 1.8.4。当我启动我的 pycharm 时,我得到以下错误。我检查了__init__.py 以检查错误并试图找出 1.8.4 的示例文件以供参考。有人可以解释一下 - 如何逐步解决这些错误。

Failed to get real commands on module "albatross": python process died with code 1: Traceback (most recent call last):
  File "/home/ritesh/Development/pycharm-4.5.3/helpers/pycharm/_jb_manage_tasks_provider.py", line 20, in <module>
    django.setup()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/__init__.py", line 17, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/conf/__init__.py", line 48, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/conf/__init__.py", line 44, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/conf/__init__.py", line 108, in __init__
    "Please fix your settings." % setting)
django.core.exceptions.ImproperlyConfigured: The TEMPLATE_DIRS setting must be a tuple. Please fix your settings.

TEMPLATE_DIR

import os
CURRENT_PATH = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = (
 CURRENT_PATH + '/templates'
)

【问题讨论】:

  • 您是否尝试过检查回溯并可能在 settings.py 中更新 TEMPLATE_DIRS?
  • 请输入您的模板目录设置
  • @AjayGupta:从 setting.py 中添加了 TEMPLATE_DIRS
  • @AjayGupta:我试过 stackoverflow.com/questions/24340746/… 。现在它抛出了一些其他错误。现在将检查它们。如果需要,我会更新我的问题
  • 实际上,您根本不应该在 Django 1.8 中使用 TEMPLATE_DIRS。

标签: python django pycharm


【解决方案1】:

这个:

TEMPLATE_DIRS = (
     CURRENT_PATH + '/templates'
)

不是tuple,它只是CURRENT_PATH + 'templates' 字符串。是什么让tuple 不是括号而是逗号,即:

>>> t = ("aaa")
>>> t
'aaa'
>>> type(t)
<type 'str'>
>>> t = "aaa", "bb"
>>> t
('aaa', 'bb')
>>> type(t)
<type 'tuple'>
>>> t = "aaa",
>>> t
('aaa',)
>>> type(t)
<type 'tuple'>
>>> 

唯一的例外是空的tuple 的字面表达式(我假设是出于可读性原因?)拼写为() 而不是,

除了这种特殊情况,tuple litteral 周围的括号在技术上是无用的,仅用于可读性。

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2011-10-09
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多