2013-05-06 59 views
1
  1. 我需要打包一堆html/css/etc。文件作爲一個包:讓我們稱他們爲'主題'。我正在這樣做,這樣我就可以爲幾個/任意數量的應用程序提供這些可用的交叉應用程序。來自模塊/進口包裝的路徑

  2. 我有模塊是WHEREEVER/virtualenv/lib/pythonVERSION/site-packages/package_name。

  3. 所有的「主題」的是在程序包名爲「主題」

我不需要這些主題導入的作爲模塊本身的文件夾下,我只是需要有一個參考等。無論他們在文件系統中,我不確定協議是什麼。我是否可以找到該路徑並根據需要傳遞它?我只需要知道,無論安裝了哪個軟件包,我都可以在該軟件包中找到一個目錄並閱讀其中的內容。

我在猜測,'是',答案很簡單,但如何解決這個問題在這一點上並不完全清楚,或者如果有更好的方法我不知道。任何輸入讚賞。

一些背景資料:

我試圖創造燒瓶fleem一個模塊加載:

https://github.com/thrisp/fleem

編輯:

這工作對我來說,現在的答案是隻需從包init文件中導出一個常量:

PACKAGE_THEMES = os.path.join(os.path.dirname(os.path.abspath(_ _file__)),'themes')

改進和/或更好的解決方案讚賞。

回答

1

如果您可以導入package_name,那麼您可以確定軟件包的安裝目錄(package_dir),因此也可以確定主題目錄的位置。

import os 
import package_name 

package_dir = os.path.dirname(package_name.__file__) 
theme_dir = os.path.join(package_dir, 'themes') 
+0

我剛剛注意到我提出的答案,與此非常相似。 – blueblank 2013-05-06 17:43:05