2012-11-05 81 views
0

我可以在Python中使用相同名稱的包和模塊嗎?具有相同名稱的模塊和包

例如:

import json 
import myapp.json.jsoncustommodule 

我不知道這有什麼關係的事實,JSON是在Python內置庫。

在大多數語言中,這是可以接受的。但是,Python似乎混淆了這兩件事,即使它們位於不同的父包中。

+1

你有什麼問題確切地說?你給的例子工作得很好。我懷疑你有一個* local *名稱的問題,這是一個導入對象可用的名稱。 –

回答

3

要回答你的問題,在Python中做這樣的事情沒有問題。

但是如果你從這樣的事情產生的命名空間衝突: -

import json 

from myspecialpackage import json 

您將需要使用as關鍵字來解決這個問題,像這樣的: -

from myspecialpackage import json as special_json 
+0

你說得對。我做了一個簡單的測試例子,它工作正常。它一定是別的東西。在我的代碼中,如果我打印json .__ file__,它會返回myapp.json.__init__.py。任何想法爲什麼? –

+0

你還需要讓你的'sys.path'('PYTHONPATH')正確。 我確定你的'myspecialpackage'在'sys.path'中,但在你的'site-packages'後面有python的內置'json'模塊。 –

+1

json目錄是腳本目錄的子目錄...並且當前腳本路徑位於python路徑中的站點包之前。問題解決了。 –

相關問題