2010-09-16 107 views

回答

0

据我所知,这只是个人品味的问题。我去包含该项目的目录,但这只是我的偏好。

+0

它不会使应用程序不可移植吗?我的意思是,在这种情况下,应用程序将始终需要知道他们生活在哪个软件包,不是? – 2010-09-16 12:44:35

+0

如果应用程序不在项目目录下,它们需要在sys.path中用于项目中,如果将它们作为模块放入项目中,则足以将项目放在sys.path中,同时应用程序也应该永远不需要知道他们在什么项目(项目是包),以便可移植,这是该项目应该知道如何找到应用程序而不是其他方式。 – 2010-09-16 13:16:08

+0

如果应用程序想在不知道项目目录的情况下从app目录导入内容,则可以使用新风格的from。 import modulename'语法。 (我认为需要Python 2.5或更高版本。) – apenwarr 2010-09-16 23:42:30

3

sys.path应该并且将有项目的目录。根据您的设置,它可能还包含包含该项目的目录。

但是,如果这个问题背后的动机是确保可以找到某些文件,那么您应该注意到sys.path就像普通列表一样,可以附加到。因此,您可以添加一个新的位置,以sys.path像这样:

sys.path.append('/home/USER/some/directory/') 

文件所在的文件中可以找到。

希望这会有所帮助

+0

*它也可能包含包含项目*的目录。但这意味着应用程序中定义的对象有两个不同的标识:http://bugs.python.org/issue9872 – 2010-09-16 12:56:46