2015-11-10 31 views
7

quando aggiorno le mie variabili ambientali (utilizzo vim per modificare ~/.bashrc) PyCharm non riceve subito gli aggiornamenti, devo chiudere il programma, sorgente ~/.bashrc di nuovo, e riapri PyCharmpycharm non si aggiorna con le variabili di ambiente

Un modo per far sì che PyCharm esegua le modifiche automaticamente o senza spegnere?

+0

Curioso ... quanto spesso aggiorni le vars ambiente? Inoltre, potresti avere più fortuna su http://superuser.com. – isherwood

+0

non molto spesso, alcune informazioni sensibili per il mio progetto sono archiviate in vars ambientali piuttosto che nel codice, vedo le variabili correttamente quando faccio '$ printenv' quindi non penso che sia un problema con il sistema operativo – RenaissanceProgrammer

+0

risolto il mio problema con il riavvio non funzionante, non stavo usando il file RC giusto per la mia shell. Ma Pycharm ha ancora bisogno di un riavvio per ottenere nuove variabili in 'os.environ' – RenaissanceProgrammer

risposta

5

Quando un qualsiasi processo di ottenere lo ha creato eredita le variabili d'ambiente dal suo processo genitore (la stessa O.S. nel tuo caso). se si modificano le variabili di ambiente a livello padre, il processo figlio non ne è a conoscenza.

PyCharm consente di modificare le variabili di ambiente dalla finestra Run \ Debug Configuration. Esegui> Modifica> Configurazioni Variabili d'ambiente ->

Images

+1

grazie Omer727, sono a conoscenza dell'aggiunta manuale di vars nel test e ho utilizzato questa opzione, ma mi chiedevo specificamente perché os.environ non si aggiornava, sembra che quello che dici del processo figlio non sia aggiornato dopo che è stato aggiornato lanciato è corretto, sembra che non ci sia modo di aggiornare senza chiudere l'app – RenaissanceProgrammer

0

Questo è semplicemente il modo in cui le variabili di ambiente funzionano. Se li si cambia, si deve riscrivere il proprio .bashrc (o qualsiasi altro file in cui si trovano le variabili d'ambiente).

+0

sì che è comprensibile, tuttavia, il resourcing del file nel terminale non aggiorna le variabili nell'oggetto del SO, questo include l'esecuzione di una parte di codice dopo che la sorgente è stata eseguita. solo chiudendo completamente l'app e rilanciandola si aggiungono le nuove variabili all'oggetto del SO, tecnicamente parlando, ogni volta che il codice viene eseguito, l'oggetto del SO dovrebbe essere fresco – RenaissanceProgrammer

+0

Anche in questo caso le variabili di ambiente funzionano. Quando carichi la tua applicazione, viene essenzialmente caricata con un'istantanea del tuo ambiente. –

+0

ok ma IMO "è così che funziona" non è una gran risposta, Omer ha fornito alcune informazioni di base su PERCHÉ funziona così ed è per questo che ha ottenuto la mia accettazione – RenaissanceProgrammer

0

Pycharm mantiene la propria versione delle variabili di ambiente e quelle non provenienti dalla shell.

Sembra che se pycharm viene eseguito da una virtualenv o dalla shell contenente dette variabili, verrà caricato con esse, tuttavia non è dinamico.

la risposta sotto ha uno script settings.py per il virtualenv per aggiornare e mantenere le impostazioni. Se questo risolve completamente la tua domanda o no non ne sono sicuro.

Pycharm: set environment variable for run manage.py Task

0

Nel caso in cui si utilizza il "sudo python" technique, essere consapevoli del fatto che non è così per default trasmettere le variabili di ambiente.

corretto passaggio delle variabili d'ambiente definite nella configurazione di lancio PyCharm, utilizzare l'interruttore -E:

sudo -E /path/to/python/executable "[email protected]" 
0

Recentemente ho scoperto un soluzione in finestre. Chiudere PyCharm, copiare il comando da eseguire PyCharm direttamente dal collegamento ed eseguire nuovamente in una nuova finestra di terminale: cmd, cmder, ecc

C:\ 
λ "C:\Program Files\JetBrains\PyCharm 2017.2.1\bin\pycharm64.exe" 
0

Nel mio caso PyCharm non tiene variabili env da bashrc anche dopo il riavvio

Problemi correlati