0

所以这是我的问题 - 我的 django 项目中的 gravatar 应用程序(来自 google 项目 - 在这里!http://code.google.com/p/django-gravatar/)在启动时崩溃了一切。

我得到这个错误Error: No module named gravatar

这是我安装的应用程序:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'dumpstown.dumpstownapp',
'bootstrap_toolkit',
'registration',
'gravatar'
)

当我运行这个时,从控制台:

>> import sys
>> print sys.path
['', 'C:\\development\\python\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg',
 'C:\\development\\python\\lib\\site-packages\\pip-1.1-py2.7.egg', 'C:\\developm
ent\\PycharmProjects\\lib\\gravatar', 'C:\\Windows\\system32\\python27.zip', 'C:
\\development\\python\\DLLs', 'C:\\development\\python\\lib', 'C:\\development\\
python\\lib\\plat-win', 'C:\\development\\python\\lib\\lib-tk', 'C:\\development
\\python', 'C:\\development\\python\\lib\\site-packages']

我在这里想念什么?

更新啊,奇怪。我检查了 gravatar 文件夹,我有

templatetags dir
__init__.py
models.py
views.py

另外,如果我将已安装的应用程序部分更改为:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'dumpstown.dumpstownapp',
'bootstrap_toolkit',
'registration',
'templatetags'
)

然后服务器启动正常并运行。但是我……我现在很困惑!我是要导入模板标签吗?或者是其他东西?如果我正在导入模板标签,我如何引用 gravatar 的东西?

编辑:解决。

我只是不明白python是如何工作的,看起来!我完全在 pythonpath 中添加了错误的项目 - 我正在添加C:\\development\\PycharmProjects\\lib\\gravatar,我应该在其中添加C:\\development\\PycharmProjects\\lib

这解决了问题,现在我可以随心所欲地使用 gravatar。在我的第一个示例中,settings.py 条目如上(即,只是'gravatar'),我使用它的方式是我只是 {% load gravatar %}

欢呼!

4

2 回答 2

1

可能您检查了主干文件夹并具有类似 ..\gravatar\gravatar 的结构?setup.py 脚本应该将其安装在您的路径中,但您也可以尝试更改C:\developm ent\PycharmProjects\lib\gravatarC:\developm ent\PycharmProjects\lib\gravatar\gravatar

于 2012-06-21T23:19:53.133 回答
0

完全将错误的项目添加到 pythonpath - 我添加了 C:\development\PycharmProjects\lib\gravatar,我应该在其中添加 C:\development\PycharmProjects\lib

于 2012-06-22T01:55:30.580 回答