我最近使用 Fabric 为我的 Django 项目设置了部署解决方案.基本工作流程是:
- 从服务器上的 git 查看最新的源代码。
- 将其复制到“releases”目录并在目录名称中添加时间戳。
- 更新“当前”符号链接(symbolic link)以指向最新版本。
这工作得很好,唯一的问题是,因为顶级目录是一个名为“current”的符号链接(symbolic link),它指向一个像“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 文档提到将项目名称用于各种用途。
所以总结一下我的问题,有没有办法指定一个不同于实际目录名称的包名称?
最佳答案
简而言之,您真的不应该在任何地方使用硬编码的项目名称,尤其是在特定应用中,因为这会完全破坏它们的可移植性和可重用性。
关于python - 从具有不同顶级文件夹名称的 Django 项目导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864615/