2012-11-13 22 views
0

如何更改依賴路徑並將其部署到不同的目錄結構中而不是在開發中?使用與源不同的目錄結構打包

我有以下結構在我的源代碼目錄

\ABCE 
\ABCE\lib 
\ABCE\lib\modulA.py 
\ABCE\lib\modulA.py 

,如果我現在python setup.py sdist

打包我需要調用該模塊:

import lib.moduleA 
import lib.moduleB 

如何避免庫。但保持我的目錄結構?所以,我有

import moduleA 
import moduleB 
+0

你的'setup.py'現在是什麼? –

回答

1

列表lib導入在packages_dir選項:

package_dir = {'': 'lib'} 

distutils "Writing a Setup Script" documentation

如果使用不同的約定來佈置你的源目錄,這是沒問題:你只需要提供package_dir選項來告訴Distutils你的約定。例如,假設您將所有Python源都保留在lib之下,以便「根包」中的模塊(即根本不包含在任何包中)位於lib中,foo包中的模塊位於lib/foo等等中。那麼你會把

package_dir = {'': 'lib'} 

在您的安裝腳本。該字典的關鍵字是包名稱,空包名稱代表根包。這些值是相對於您的分佈根的目錄名稱。在這種情況下,當您說packages = ['foo']時,您承諾文件lib/foo/__init__.py存在。