我可以在Python中使用相同名稱的包和模塊嗎?具有相同名稱的模塊和包
例如:
import json
import myapp.json.jsoncustommodule
我不知道這有什麼關係的事實,JSON是在Python內置庫。
在大多數語言中,這是可以接受的。但是,Python似乎混淆了這兩件事,即使它們位於不同的父包中。
我可以在Python中使用相同名稱的包和模塊嗎?具有相同名稱的模塊和包
例如:
import json
import myapp.json.jsoncustommodule
我不知道這有什麼關係的事實,JSON是在Python內置庫。
在大多數語言中,這是可以接受的。但是,Python似乎混淆了這兩件事,即使它們位於不同的父包中。
要回答你的問題,在Python中做這樣的事情沒有問題。
但是如果你從這樣的事情產生的命名空間衝突: -
import json
from myspecialpackage import json
您將需要使用as
關鍵字來解決這個問題,像這樣的: -
from myspecialpackage import json as special_json
你說得對。我做了一個簡單的測試例子,它工作正常。它一定是別的東西。在我的代碼中,如果我打印json .__ file__,它會返回myapp.json.__init__.py。任何想法爲什麼? –
你還需要讓你的'sys.path'('PYTHONPATH')正確。 我確定你的'myspecialpackage'在'sys.path'中,但在你的'site-packages'後面有python的內置'json'模塊。 –
json目錄是腳本目錄的子目錄...並且當前腳本路徑位於python路徑中的站點包之前。問題解決了。 –
你有什麼問題確切地說?你給的例子工作得很好。我懷疑你有一個* local *名稱的問題,這是一個導入對象可用的名稱。 –