2010-08-20 38 views
0

我喜欢Eclipse有很多原因。其中之一是,当我正在做一个java项目时,我可以复制并粘贴我的项目或重新命名它,创建一个新项目,并且它会更新所有项目的所有名称。Django和Eclipse,制作一个可移植的项目

我正在尝试为django项目做类似的事情。

我可以设置一个APPNAME变量用下面的代码

APPNAME = os.path.basename(os.path.dirname(__file__)) 

,然后我可以在需要知道应用程序的名称的任何文件导入此。这不是一个理想的解决方案,但它可以用于我的settings.py文件以及我的urls.py文件。

它不会在那里我需要从某处像这样的东西导入工作情况:

from myproject.someapp import forms 

有没有办法Django的/ Python的知道什么是“MyProject的”是什么?或者我可以使用相对于当前应用程序的导入语句吗?

或者,也许有更好的方法来复制Django的项目。

编辑:我想也有数据库的依赖,以及我不得不处理。

回答

1

我跟着一对夫妇的规则,以保持我的应用程序的可移植性。我会在下面列出它们,希望有人发现它们有用。

  1. 包括我的应用程序在PYTHONPATH而不是我的项目。这样我可以执行from app import forms而不是from project.app ...
  2. 继#1,我总是从应用程序只进口。这意味着我可以在其他项目中重新使用我的应用程序,而无需在应用程序或其他相关应用程序中更改导入语句。

如果你坚持#1和#2,你通常可以复制和粘贴项目,没有太多的麻烦。不过你仍然需要修改settings.py

+0

您在哪里对PYTHONPATH进行了更改?谢谢! – JPC 2010-08-22 03:50:59

+0

我在这里读了一篇文章:http://codespatter.com/2009/04/10/how-to-add-locations-to-python-path-for-reusable-django-apps/但它说我需要做我的应用程序的“应用程序”文件夹。如果可能的话,我不想那么做。 – JPC 2010-08-23 03:05:05

+0

嗯,我在我的settings.py这样做: PROJECT_ROOT = os.path.dirname(__ FILE__) sys.path.insert(0,os.path.join(PROJECT_ROOT, “应用程序”)) ,并把所有的我在一个文件夹,名为应用程序,所以我的项目结构的应用程序是djangoproject1 - >应用程序 - >应用程序的名字 但是当我从应用程序的名字进口* – JPC 2010-08-23 03:39:22