我在使用Python中的__import_函數導入包之後調用包時遇到問題。我會注意到使用通常的import x as y
工作正常,但這對我來說是一個學習練習。我正在導入,然後檢查多個軟件包的版本,並且學習一些關於Python的知識,我想通過使用字典來自動化這個。將x = _import _(「y」)與字典值一起使用時調用模塊時出錯
我的字典裏看起來是這樣的:
pack = {"numpy": ["np", "1.7.1"]}
,然後我用這個來加載和檢查模塊:
for keys in pack.keys():
pack[keys][0] = __import__(keys)
print("%s version: %6.6s (need at least %s)" %(keys, pack[keys][0].__version__, pack[keys][1]))
這工作得很好,但是當我後來試圖調用包,它不能識別它:x = np.linspace(0,10,30)
產生一個錯誤說np不被識別,但是這個工作:x = pack[keys][0].linspace(0,10,30)
因爲這只是我學習的一種方式,所以我也會對任何改變我如何解決問題的解決方案感興趣。因爲我至少聽說過它們,所以我使用了_import__函數,因爲我不得不在字典值中使用帶引號的字符或數字值。引用的字符爲import x as y
技術創建了問題。
您已經導入了包,但你並沒有真正在當地的命名空間分配給一個名字。 –
謝謝。我認爲這就是'x'= __import __(x)'的左邊所做的。你知道我需要更改我的代碼來修復它嗎? – user71216
但你沒有分配給一個變量,你分配給一個字典裏面的元素。 –