【发布时间】:2011-05-06 01:27:06
【问题描述】:
我决定是时候为我的 django 项目迁移到 virtualenv 了。除了一件事,一切都运行良好。即使使用 pip 安装到我的 virtualenv 中的应用程序可以毫无问题地导入到我的项目中,但在运行开发服务器时找不到这些应用程序中的任何 .url、模板、模板标签等。
我在环境中检查了我的 python 路径,并且我安装的站点包目录在路径中。
有人知道我做错了什么吗?
---添加信息---
由于我仍然遇到问题,我正在向这张票添加更多信息。我确定这是我正在做的事情,只是无法弄清楚它是什么。从一个全新的环境开始,在 ubuntu 和 osx 上进行了测试。
virtualenv --no-site-packages testpjt
然后我使用 pip 添加 django 和 django smuggler。这是要求文本
-e svn+http://code.djangoproject.com/svn/django/trunk#egg=Django
django-smuggler==0.1.1-final
然后我用 pip 安装需求
pip install -E testpjt -r requirements.txt
一切似乎都安装得很好。于是我启动虚拟环境,对文件进行如下修改:
source ../bin/activate
将走私者添加到已安装的应用程序中:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'smuggler',
)
在 urls.py 中添加管理员和走私者
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include('smuggler.urls')),
(r'^admin/', include(admin.site.urls)),
)
然后我同步数据库并启动服务器:
../bin/python manage.py runserver 0.0.0.0:8000
我可以转到 ip/admin 并获得管理界面。我转到 ip/admin/load(转储,任何走私者 url)并获得 404。
为了测试,我可以进入 django shell 并:
from smuggler import urls
并且没有错误,所以我知道它们在那里。
如果我将 smuggler 的副本放在项目目录的基础上,它就可以正常工作。
【问题讨论】:
-
你把所有这些应用都放到了 INSTALLED_APPS 中了吗?
-
是的,它们在 INSTALLED_APPS 中,我没有从设置文件中得到任何错误。事实上,如果我从 django shell 运行,我可以毫无问题地“导入 appname”。如果我尝试“from appname.forms import formname”,它会告诉我找不到它。
-
你能显示你的 INSTALLED_APPS 的内容和 pip freeze 的输出吗?
-
对不起@rz,我错过了你的评论。我已将信息添加到问题中。
标签: django virtualenv