2012-12-04 115 views
0

我試圖在我的應用程序中添加一些庫,使其更加便攜。 問題是,應用程序的構建沒有考慮到這一點。從文件夾導入模塊

所以更具體一點,我想在我的軟件包中有一個名爲libs的文件夾,並在我的應用程序中保留一個用於該應用程序的庫的副本。

例如讓我說我使用MySQLdb庫。在我的應用程序,我將其導入這樣

import mysqldb 

我希望能夠使用庫文件夾中的相同的代碼,但是有MySQLdb的。

這可能嗎?我嘗試了__init__.py,但是我失敗了。

回答

1

你可以玩sys.path,並達到你想要的。只要做你的程序的開頭:

import sys 
sys.path = [$'path_to_your_lib_folder_here'$] + sys.path 

這不但是最佳做法,你需要小心,特別是如果你的軟件將被用作其他圖書館第三方。

2

你不應該把MySQLdb放到你的項目的任何地方。這是第三方庫,它應該作爲系統軟件包安裝或者安裝在您的項目虛擬環境中。

+0

是的,但是如果我不得不在服務器上部署應用程序,那麼我沒有安裝東西的權限呢? – kechapito

+1

這就是virtualenv的用途。 –

+0

謝謝,我不知道。 – kechapito