Python: come posso spostare i file senza modificare le istruzioni di importazione?

-5

Ho scritto del codice che utilizza la dichiarazione "import" per includere codice da altre parti del progetto e durante il corso dello sviluppo ho avuto la necessità di ristrutturare parte del codice in altre posizioni in l'albero del progetto.

Il problema che ho riscontrato durante questa operazione è la rottura delle istruzioni di importazione. Il comportamento desiderato è che le importazioni non si rompono quando sposto un file. Ho avuto esperienze durante lo sviluppo in C # e Java, dove questo comportamento è automatico e vorrei una soluzione per lo sviluppo di Python.

Esistono metodi / strumenti / pratiche che posso utilizzare per impedire che import x si interrompa quando sposto file come quello che ho fatto in Java / C #? È possibile copiare un file in un'altra posizione nell'albero del progetto e mantenerlo funzionante senza modifiche al file stesso?

    
posta xxbidiao 10.04.2018 - 20:12
fonte

2 risposte

1

L'unico modo in cui posso immaginare questo funziona è se invece di fare affidamento sulle importazioni di file relativi si faccia affidamento sulle importazioni di pacchetti. Non posso raccomandarlo a meno che il codice che hai scritto abbia senso essere un pacchetto separato. Ciò funzionerebbe allo stesso modo dell'utilizzo di moduli di terze parti.

Il processo sarebbe simile, crea un nuovo progetto con il codice che stai sperando di importare. Segui la documentazione Script di installazione di Python per la tua versione di Python e dopo aver creato il pacchetto tu può pip installarlo o copiarlo nella directory dei moduli dell'ambiente Python utilizzato dal progetto originale.

Vorrei anche aggiungere che la documentazione di setuptools di Python non è sorprendente e personalmente ho usato altre fonti come il codice sorgente per request richiede pacchetto e sperimentazione personale per imparare come scrivere un file setup.py e setup.cfg che farà ciò che voglio.

    
risposta data 10.04.2018 - 21:11
fonte
1

PyCharm supporta i refactoring di spostamento ( link ), semplifica molto questo tipo di lavoro.

    
risposta data 11.04.2018 - 12:41
fonte

Leggi altre domande sui tag