【问题标题】:Django GeoIP Error; invalid path typeDjango GeoIP 错误;无效的路径类型
【发布时间】:2012-05-25 02:56:30
【问题描述】:

在努力为 Django 项目正确安装 GeoIp 之后,我终于似乎已经通过通用 geoip 和 brew 正确安装了它。

不幸的是,在 shell 中尝试时,我收到以下错误:

>>> from django.contrib.gis.utils.geoip import GeoIP
>>> g = GeoIP()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/gis/utils/geoip.py", line 193, in __init__
raise TypeError('Invalid path type: %s' % type(path).__name__)

TypeError:无效的路径类型:元组

我已经尝试正确安装 GeoIP 大约 7 个小时,因此非常感谢您对这个最新错误的任何见解。

【问题讨论】:

  • 您在 settings.py 中的 GEOIP_PATH 设置是什么?它似乎不是有效的 str 或 unicode。
  • 这就是我所拥有的: import os DEBUG = True TEMPLATE_DEBUG = DEBUG BASE_DIR = os.path.dirname(os.path.abspath(file)) GEOIP_PATH = os. path.join(BASE_DIR, 'geoip'),
  • 设置GEOIP_PATH后真的有逗号吗? GEOIP_PATH = os.path.join(BASE_DIR, 'geoip'),

标签: python django geolocation


【解决方案1】:

如果你真的有一个逗号,那么你将 GEOIP_PATH 设置为一个元组而不是一个字符串,这可以解释错误。如果是这种情况,只需删除逗号:

# settings.py

import os

BASE_DIR = os.path.abspath(os.path.dirname(__file__))
GEOIP_PATH = os.path.join(BASE_DIR, 'geoip')

【讨论】:

  • 哦,您的__file__ 可能在您上面的评论中变成了文件
  • 完全正确。我还没有弄清楚如何在 cmets 中发布格式化代码。但是下划线在那里。仍然无法弄清楚问题所在。
  • 那么基本上 GEOIP_PATH = os.path.join(BASE_DIR + 'geoip') 应该可以工作吗?
  • 好吧,我试过了,得到了同样的错误。对挫折感到抱歉。已经尝试让 GeoIP 工作了九个小时。
  • 好的,我关闭了旧的外壳,重新启动,它似乎正在工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多