0

所以,我已经有了这个设置,我在我的 python 安装的 site-packages 目录中安装了一个 django 项目(包含 settings.py 和 manage.py 的目录)。我这样做是为了使用其他软件包中的应用程序,效果很好。然而,我注意到,当我开发时,开发服务器(manage.py runserver)从站点包目录加载文件。

示例:有一个文件 views.py,它使用以下命令从 models.py 加载模型:

from models import Project, Test

由于我试图修复的生产代码中的一个小错误,仍然会在开发服务器中弹出,并且 django 错误页面(如此好的功能)显示了安装在站点包中的文件中的旧代码。所以,我输入了这一行:

import models
print models.__file__

结果正是我想要的文件,来自我的开发目录。下一行,从模型导入项目,测试从站点包目录加载模型,这完全不是我想要的。

我想我已经污染了命名空间,我猜从导入导入已经从内存中加载了导入,但是正常的导入行导入了一个尚未在内存中的模块。这显然导致了能够成功更改views.py并查看开发服务器中的更改的奇怪效果。

有人知道如何解决这个问题吗?

系统信息:

  • Python2.7
  • Django1.3
  • Debian
4

1 回答 1

4

这就是virtualenv的用途。它创建了隔离的开发环境,对于同时处理多个项目/版本是必不可少的。

于 2012-10-11T13:08:03.810 回答