我最近为我的Django项目设置了一个部署解决方案,使用
Fabric
. 基本工作流程是:
-
从服务器上的Git中查看最新的源代码。
-
将其复制到“releases”目录,并向目录名添加时间戳。
-
更新“当前”符号链接以指向最新版本。
这样做很好,唯一的问题是,因为顶级目录是一个名为“current”的符号链接,并且指向类似“project\u name\u 2010\u 10\u 04”的文件夹,所有以下导入语句都将失败:
from project_name.app import models
…
INSTALLED_APPS = (
'project_name.app'
)
…
urlpatterns = patterns('',
(r'^$', 'project_name.app.views.index'),
)
因此,我找到的解决方案是删除我的项目中对“项目名称”的每个引用,并且该应用程序似乎可以部署并正常工作(目前)。但这似乎不是解决问题的正确方法…主要是因为在一个新创建的django项目中,“urls.py”、“settings.py”默认情况下都引用项目名称,并且各种django文档都提到使用项目名称来处理各种事情。
所以,为了总结我的问题,有没有一种方法可以指定一个与实际目录名不同的包名?