2012-11-05 12 views
6

Eventuali duplicati:
How to access a standard-library module in Python when there is a local module with the same name?Python: Disabilitare import relativa

sto usando Python 2.6.

Uso solo importazioni assolute nella mia applicazione. Ora ho questo:

myapp 
    | 
    -- myscript 
    -- json 
     | 
     -- anotherscript.py 

In myscript, ho:

import json 
import myapp.json.anotherscript 

A causa di Python relativo meccanismo di importazione, importazione JSON non importa la libreria incorporata come voglio, ma il mio JSON personalizzato pacchetto nello spazio dei nomi corrente.

C'è un modo per disabilitare le importazioni relative in Python o almeno un hack per evitarlo in questo caso? Altrimenti dovrò rinominare il mio pacchetto con qualcos'altro che non ha molto senso come jsonutils.

Grazie in anticipo.

+3

Perché vuoi evitare 'da. import json'? Questa sintassi è stata introdotta per risolvere il tuo problema! In ogni caso, di regola, non nominare mai un modulo come un built-in. – Bakuriu

risposta

15
from __future__ import absolute_import 

descritto nel PEP-328

+0

Non sembra che funzioni con Python 2.7 – sorin

+0

@sorin Come può fallire? Sta funzionando bene su 2.7 per me – silviot