2010-09-16 111 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