我最近使用Fabric为我的Django项目设置了部署解决方案。基本工作流程为:
这很好用,唯一的问题是,因为顶级目录是一个名为'current'的符号链接,并指向像'project_name_2010_10_04'这样的文件夹,所有以下Import语句都会失败:
from project_name.app import models
...
INSTALLED_APPS = (
'project_name.app'
)
...
urlpatterns = patterns('',
(r'^$', 'project_name.app.views.index'),
)
所以我找到的解决方案是在我的项目中删除对'project_name'的每个单独引用,并且应用程序似乎部署并正常工作(目前)。但这似乎不是解决问题的正确方法...主要是因为在新创建的Django项目中,'urls.py','settings.py'都默认引用了项目名称,并提到了各种Django文档使用项目名称进行各种事情。
总结一下我的问题,有没有办法指定一个与实际目录名不同的包名?
答案 0 :(得分:4)
简单地说,你真的不应该在任何地方使用硬编码的项目名称,特别是在特定的应用程序中,因为它只是完全破坏了它们的可移植性和可重用性。
答案 1 :(得分:0)
您好像manage.py
,urls.py
和朋友直接在您的存储库的根目录中。
这是不对的:在顶层,应该有setup.py
,requirements.txt
和项目目录,其中manage.py
和朋友应该居住。
(好吧,如果你想与非Python世界更兼容,它应该存在于顶级src/
目录中......)