Python 2.7自帶json庫。在我的PYTHONPATH中,我包含第三方來源,其中一個也被稱爲json。結果加載了錯誤的json庫。處理和避免類似上述情況的良好做法是什麼?有沒有辦法指示Python以這種方式顯式加載本地庫from ? import json
。加載本機Python庫
2
A
回答
2
你可以嘗試
from path import json as anotherjson
這樣的命名空間衝突可以被刪除。
你也可以看到關於相對/絕對導入的討論。
它說:
在Python 2.5,你可以使用從未來進口absolute_import指令切換進口的行爲,絕對進口 。此 絕對導入行爲將成爲未來版本 (可能是Python 2.7)的默認值。一旦絕對導入是默認導入,導入 字符串將始終找到標準庫的版本。建議用戶應儘可能使用絕對導入 。
from __future__ import absolute_import
# from standard path
import json as _json
# from a package
from pkg import json as pkgjson
另一種技術是使用imp模塊
import imp
json = imp.load_source('json', '/path/to/json.py')
2
真的是有與PYTHONPATH [docs]多個同名的模塊沒有什麼好辦法,這意味着你應該動第三方json模塊移動到不在PYTHONPATH上的替代位置,然後使用其他方法導入它。
最簡單的方法是將第三方json模塊移動到它所在位置的子目錄中,然後通過將__init__.py添加到它的子目錄中。
如果您將該新目錄命名爲'thirdparty',則可以使用from thirdparty import json
導入第三方json模塊,並且import json
將始終導入Python的json模塊。
或者,您可以將模塊重命名爲不衝突的內容。
相關問題
- 1. 動態加載本機庫
- 2. Hadoop:無法加載本機hadoop庫
- 3. SQLNestedException異常 - 未加載本機SSPI庫
- 4. 未加載Maven的OpenCV本機庫
- 5. 無法加載本機庫:找不到依賴庫
- 6. python如何加載Boost.Python庫?
- 7. java.lang.UnsatisfiedLinkError:本機庫:{...}。dll已經加載到另一個類加載器中
- 8. Java錯誤本機庫已在另一個類加載器中加載
- 9. UnsatisfiedLinkError:本機庫sunmscapi.dll已在另一個類加載器中加載
- 10. 調用加載另一個本機庫的本地庫時的JNI問題
- 11. 加載本地庫錯誤
- 12. 加載Windows本機Python模塊的15秒空閒延遲
- 13. 手動加載本機庫以繞過限制性環境
- 14. 如何在Apache SOLR Cloud模式下加載本機庫(.so)?
- 15. Glassfish的本機庫加載文件(.dll,的.so)
- 16. Java:重新使用已加載的本機庫?
- 17. 本機共享庫加載到Android中的速度較慢
- 18. 根據系統設置選擇要加載的本機庫
- 19. GeoTools/GDAL:警告:無法加載kakadu本機庫
- 20. 無法爲Mac OS X加載本機hadoop庫
- 21. Android Studio 1.3 RC1 NDK無法加載本機庫
- 22. java.lang.UnsatisfiedLinkError:無法加載OneTick Java API本機庫libjomd.so/jomd.dll
- 23. 打印Python本機庫列表
- 24. 發動機場推/加載數據庫
- 25. 如何在Iron Python腳本中加載可移植的.NET庫?
- 26. 加載文本文件導入數據庫使用python
- 27. 如何設置environemnt來加載python庫?
- 28. 如何在Python中加載Rake庫
- 29. 修改python的Gobject加載庫路徑
- 30. Python CDLL無法加載庫2次
我建議你嘗試並修改你的代碼,讓Python保持原樣。你將不得不修改你包含的每個新模塊來說明你的代碼。 – Blender