Mam problem, że Jupyter nie widzi zmiennej env w pliku bashrc, czy istnieje sposób na załadowanie tych zmiennych do jupytera lub dodanie do niego zmiennej custome?Jak ustawić zmienną env w Jupyter notebooka
Odpowiedz
Można zmienne środowiskowe ustawień w kodzie następująco:
import sys,os,os.path
sys.path.append(os.path.expanduser('~/code/eol_hsrl_python'))
os.environ['HSRL_INSTRUMENT']='gvhsrl'
os.environ['HSRL_CONFIG']=os.path.expanduser('~/hsrl_config')
to jeśli oczywiście tymczasowym rozwiązaniem, aby uzyskać trwały jeden, prawdopodobnie trzeba wyeksportować zmienne w swojej ~.profile
, więcej informacji można można znaleźć here
Jeśli używasz systemd, właśnie się dowiedziałem, że musisz dodać je do pliku systemd. To na Ubuntu 16. Umieszczenie ich w .profile i .bashrc (nawet w/etc/profile) spowodowało, że ENV Vars nie są dostępne w notatkach juyptera.
miałem do edycji:
/lib/systemd/system/jupyer-notebook.service
i umieścić w zmiennej chciałem przeczytać w pliku jednostkowych takich jak:
Environment=MYOWN_VAR=theVar
i dopiero wtedy mogłem przeczytać go od wewnątrz juypter notebooka.
Aby ustawić zmienną env w notatniku jupyter, wystarczy użyć %
magiczne komendy, albo %env
lub %set_env
, np %env MY_VAR=MY_VALUE
lub %env MY_VAR MY_VALUE
. (Użyj %env
przez sam wydrukować bieżące zmiennych środowiskowych.)
Patrz: http://ipython.readthedocs.io/en/stable/interactive/magics.html
Jeśli potrzebujesz zmiennej zestaw zanim zaczynasz notebooka, jedynym rozwiązaniem, które pracował dla mnie było env VARIABLE=$VARIABLE jupyter notebook
z export VARIABLE=value
w .bashrc
.
W moim przypadku tensorflow potrzebuje eksportowanej zmiennej do udanego importowania jej do notatnika.
Dzięki Kardaj, eksportowanie zmiennej w ~/.profile rozwiązało ją, wydaje się, że nie jest to czytanie z bashrc, co jest dość dziwne. –
Odpowiedź Michaela z '% env MY_VAR = MY_VALUE' powinna być poprawną odpowiedzią na to pytanie –