1

我最近使用Fabric为我的 Django 项目设置了一个部署解决方案。基本工作流程是:

  1. 查看服务器上 git 的最新源代码。
  2. 将其复制到“发布”目录并在目录名称中添加时间戳。
  3. 更新“当前”符号链接以指向最新版本。

这工作得很好,唯一的问题是,因为顶级目录是一个名为 'current' 的符号链接,它指向一个文件夹,如 'project_name_2010_10_04' 以下所有导入语句都将失败:

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 文档提及将项目名称用于各种事情。

所以总结一下我的问题,有没有办法指定与实际目录名称不同的包名称?

4

2 回答 2

4

简而言之,你真的不应该在任何地方使用硬编码的项目名称,尤其是在特定的应用程序中,因为它完全破坏了它们的可移植性和可重用性。

于 2010-10-05T17:26:05.893 回答
0

看来您有manage.py,urls.py和朋友直接在您的存储库的根目录中。

这是不对的:在顶层,应该有setup.py,requirements.txt和项目目录,manage.py和朋友应该住在里面。

(好的,如果你想与非 Python 世界更兼容,它应该位于顶级src/目录中......)

于 2010-10-10T00:16:07.083 回答