2013-01-05 48 views
1

我想寫一個python腳本,我可以很容易地導出到沒有依賴關係問題的朋友,但我不知道該怎麼做。具體來說,我的腳本依賴於BeautifulSoup的代碼,但不是強迫朋友必須安裝BeautifulSoup,我寧願將BeautifulSoup的src打包到我的項目文件的Libraries /文件夾中,然後從那裏調用函數。但是,我不能再簡單地「導入bs4」。什麼是正確的方式去做這件事?如何從python的源代碼導入庫?

謝謝!

回答

4

一種常用的方法是將requirements file與項目一起發貨,指定需要哪個版本的庫。這個文件是(按照約定)通常命名爲requirements.txt,看起來是這樣的:

MyApp 
BeautifulSoup==3.2.1 
SomeOtherLib==0.9.4 
YetAnother>=0.2 

(虛構的文件上面說:我到底需要BeautifulSoup 3.2.1,0.9.4 SomeOtherLib和YetAnother大於或等於任何版本到0.2)。

那麼這個項目的用戶可以簡單地把你的庫,(創建一個virtualenv)並運行

$ pip install -r requirements.txt 

,然後將獲取所有庫並使其可用任一系統範圍內的項目範圍內的(如果使用virtualenv)。這裏有一個隨機的Python項目關閉github上,有需求文件:

這種方法的好處是,你會得到你傳遞依賴自動解決。另外,如果你使用virtualenv,你會得到一個乾淨的項目分離,並避免庫版本衝突。

+0

什麼是> = ?,也是命令pip freeze> requirements.txt來保存您當前的需求,可能會有用。 –

+0

@DrewV,我在'=='和'> ='上添加了一個簡短註釋。 – miku

+0

這有助於很多。非常感謝所有發佈的人! – dzy