2011-01-05 55 views
5

是否有這樣的事情Django的寶石 - 插件,像有紅寶石的寶石,是否有這樣的事情Django的寶石 - 插件,像有紅寶石寶石

像身份驗證管理插件等

+2

是否意味着Python「寶石」或Rails「插件」? – miku 2011-01-05 07:54:35

+1

請不要問問題的答案是「是」或「否」。 :-) – 2011-01-05 08:01:12

+1

@Lennart - 爲什麼不呢?通過提供超越簡單的「是」或「否」的信息,這個問題的答案顯示,只有「是」或「否」答案纔是有用的,這是一個罕見的問題。 – 2011-01-05 09:19:28

回答

4

要多一點細節添加到其他的答案,紅寶石寶石相當於是Python的「蛋」。我不知道Ruby,所以我不確定這個等價關係有多確切,但是egg基本上是Python包的安裝文件 - 它們給Python提供了關於哪些包被安裝的信息。通常通過在軟件包目錄內運行./setup.py install或通過使用setuptools,即pip install NAME-OF-PACKAGE(後一種方法通常更簡單,因爲它會爲您下載文件並安裝所需的所有依賴項)來創建egg。應該注意的是,任何包(放在__init__.py文件中的任何文件夾)或放在PYTHONPATH上的模塊都可以由Python導入;安裝它們只是幫助跟蹤哪些軟件包正在被使用,並且可以更容易地處理有很多依賴關係的複雜軟件包。

在Django中,如@EinLama提到的,這些附加軟件包的功能應用程序(它們通常包括像models.py,views.py,urls.py等文件)。其中一些實際上是由Python按上述方式安裝的,有些只是應放在PYTHONPATH上的文件夾(在這兩種情況下,您還必須將它們添加到settings.py文件中的已安裝應用程序中,以便Django知道它們) 。另外,我經常遇到(開源的)軟件包,它們幾乎可以完成我想要的功能,但不完全是這樣,或者是這樣設計的,以便必須更改將應用​​程序集成到我的項目中的細節是硬編碼的。在這些情況下,我經常將應用程序直接放在我的項目文件夾中,在那裏我可以根據需要進行更改,並像訪問其他任何應用程序一樣訪問它。在這種情況下,該包當然僅限於特定的Django項目 - 它永遠不會被Python安裝,也不會創建任何蛋。

。希望澄清事情有點。