2012-10-31 78 views
3

是否有可能讓python會話知道從會話啓動以來已有easy_install ed的新庫?將剛剛安裝的軟件包導入到現有的python會話中

我有一個控制檯已經運行了幾天,最後想出了(大)的結果。我意識到在檢查結果後,我會要求另一個包(nltk)進行處理,我安裝了它,但會話不能import它(新的可以)。問題是,我似乎無法保存未處理的結果(picklemarshal給我關於字符串長度的錯誤),我真的不想重新運行爲期一週的過程。

+0

你可以寫數據到一個文件,沒有鹹菜/元帥?你處理什麼樣的數據? – Junuxx

+1

http://stackoverflow.com/questions/3231011/how-to-easy-install-egg-plugin-and-load-it-without-restarting-application – zigg

+0

可能的重複它們是推文(由'tweetstream'提供) - 高度嵌套的結構,列表中的字典等,所以不能直接保存。 – mitchus

回答

2

你可以嘗試使用imp模塊加載新包裝:

from imp import * 
file, pathname, description = find_module('nltk') 
nltk = load_module('nltk', file, pathname, ('.py', 'U', 1)) 

您可能需要指定一個路徑參數爲find_module如果Python不能找到新安裝的模塊:

file, pathname, description = find_module('nltk', '/path/to/nltk') 

用安裝nltk的路徑替換最後一個參數。

相關問題