GNU/Linux >> Linux Esercitazione >  >> Linux

Nello script Python, come imposto PYTHONPATH?

Puoi ottenere e impostare le variabili d'ambiente tramite os.environ :

import os
user_home = os.environ["HOME"]

os.environ["PYTHONPATH"] = "..."

Ma poiché il tuo interprete è già in esecuzione, ciò non avrà alcun effetto. Faresti meglio a usare

import sys
sys.path.append("...")

che è l'array del tuo PYTHONPATH verrà trasformato in all'avvio dell'interprete.


Se inserisci sys.path.append('dir/to/path') senza controllare che sia già aggiunto, potresti generare un lungo elenco in sys.path . Per questo, consiglio questo:

import sys
import os # if you want this directory

try:
    sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
    sys.path.append('/dir/path') # Or os.getcwd() for this directory

Non imposti PYTHONPATH , aggiungi voci a sys.path . È un elenco di directory in cui cercare i pacchetti Python, quindi puoi semplicemente aggiungere le tue directory a quell'elenco.

sys.path.append('/path/to/whatever')

Infatti, sys.path viene inizializzato suddividendo il valore di PYTHONPATH sul carattere separatore di percorso (: su sistemi simili a Linux, ; su Windows).

Puoi anche aggiungere directory usando site.addsitedir , e quel metodo terrà conto anche di .pth file esistenti all'interno delle directory passate. (Questo non sarebbe il caso delle directory specificate in PYTHONPATH .)


PYTHONPATH finisce in sys.path, che puoi modificare in fase di esecuzione.

import sys
sys.path += ["whatever"]

Linux
  1. Chiama lo script Python da bash con argomento

  2. Come ottenere PYTHONPATH nella shell?

  3. Come eseguire lo script Python da Java?

  4. Come eseguire lo script Python come servizio?

  5. Come impostare il percorso JAVA_HOME su Ubuntu?

Come eseguire uno script Python in PHP

Come configurare l'esecuzione automatica di uno script Python utilizzando Systemd

Come eseguire script Python dalla shell

Come usare i set in Python

come trovare il proprietario di un file o di una directory in python

Come posso impostare il 'backend' in matplotlib in Python?