Piszę import numpy as np
prawie za każdym razem, gdy uruchamiam interpreter Pythona. Jak skonfigurować interpreter języka Python lub ipython, aby numpy był automatycznie importowany?
120
Użyj zmiennej środowiskowej PYTHONSTARTUP . Z oficjalnej dokumentacji:
Jeśli jest to nazwa czytelnego pliku, polecenia Pythona w tym pliku są wykonywane przed wyświetleniem pierwszej zachęty w trybie interaktywnym. Plik jest wykonywany w tej samej przestrzeni nazw, w której wykonywane są polecenia interaktywne, dzięki czemu obiekty zdefiniowane lub importowane w nim mogą być używane bez kwalifikacji w sesji interaktywnej.
Po prostu utwórz skrypt w języku Python z instrukcją import i wskaż zmienną środowiskową. Powiedziawszy to, pamiętaj, że „Wyraźne jest zawsze lepsze niż ukryte”, więc nie polegaj na tym zachowaniu w skryptach produkcyjnych.
W przypadku Ipython, zobacz ten samouczek dotyczący tworzenia pliku ipython_config
env PYTHONSTARTUP="~/.startup.py"
nie działało dla mnieexport PYTHONSTARTUP=~/.python_shell_startup.py
aby ustawić zmienną.W przypadku ipython są na to dwa sposoby. Oba dotyczą katalogu konfiguracyjnego ipython, który znajduje się w
~/.ipython
.~/.ipython/profile_default/startup/
Dla uproszczenia użyłbym opcji 2. Wszystko, co musisz zrobić, to umieścić plik
.py
lub.ipy
w~/.ipython/profile_default/startup
katalogu, a zostanie on automatycznie wykonany. Więc możesz po prostu umieścićimport numpy as np
w prostym pliku i będziesz mieć np w przestrzeni nazw swojego znaku zachęty ipython.Opcja 2 będzie faktycznie działać z niestandardowym profilem, ale użycie niestandardowego profilu pozwoli ci zmienić wymagania uruchamiania i inną konfigurację w zależności od konkretnego przypadku. Jeśli jednak chcesz być zawsze
np
dla Ciebie dostępny, umieść go w katalogu startowym.Więcej informacji o konfiguracji ipython. W docs mają znacznie bardziej kompletne wyjaśnienie.
źródło
~/.config/ipython/profile_default/startup/
a nie~/.ipython/profile_default/startup/
Używam pliku ~ / .startup.py w następujący sposób:
Następnie zdefiniuj PYTHONSTARTUP = ~ / .startup.py, a Python użyje go podczas uruchamiania powłoki.
Są tam instrukcje print, więc kiedy uruchamiam powłokę, otrzymuję przypomnienie, że działa i co zostało już zaimportowane.
pp
Skrót jest naprawdę poręczny zbyt ...źródło
~
jako substytut$HOME
działa, czy nie, ale zamiast tej względnej ścieżki musiałem użyć ścieżki absolutnej na MacOS, fish i python3.Tworząc niestandardowy skrypt startowy jak ravenac95 sugeruje jest najlepszy ogólny odpowiedź w większości przypadków, to nie będzie działać w sytuacji, gdy chcesz użyć
from __future__ import X
. Jeśli czasami pracujesz w Pythonie 2.x, ale chcesz użyć nowoczesnego podziału, jest tylko jeden sposób, aby to zrobić. Po utworzeniu profilu edytujprofile_default
(w przypadku Ubuntu, w którym znajduje się~/.ipython/profile_default
) i dodaj coś takiego na dole:źródło
Jako prostsza alternatywa dla zaakceptowanej odpowiedzi, w systemie Linux:
wystarczy zdefiniować alias, np. umieścić
alias pynp='python -i -c"import numpy as np"'
w swoim pliku ~ / .bash_aliases. Następnie możesz wywołać python + numpy za pomocąpynp
i nadal możesz używać tylko pythona zpython
. Zachowanie skryptów Pythona pozostaje nietknięte.źródło
PYTHONSTARTUP
jest wywoływana tylko w trybie interaktywnym , więc zachowanie skryptów Pythona i tak pozostaje nietknięte. Można również utworzyć alias z odniesieniem do pliku:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Możesz utworzyć normalny skrypt Pythona, jak
import_numpy.py
lub cokolwiek chcesznastępnie uruchom go z
-i
flagą.python -i import_numpy.py
W ten sposób uzyskasz elastyczność wyboru tylko modułów, które chcesz dla różnych projektów.
źródło
Jak ravenac95 wspomniał w swojej odpowiedzi , możesz utworzyć profil niestandardowy lub zmodyfikować profil domyślny. Ta odpowiedź to szybki przegląd poleceń Linuksa potrzebnych do
import numpy as np
automatycznego.Jeśli chcesz użyć niestandardowego profilu o nazwie
numpy
, uruchom:Lub jeśli chcesz zmodyfikować domyślny profil, aby zawsze importować numpy:
Sprawdź samouczek konfiguracji IPython aby dowiedzieć się więcej o konfigurowaniu profili. Zobacz,
.ipython/profile_default/startup/README
aby zrozumieć, jak działa katalog startowy.źródło
Moje domyślne
ipython
wywołanie to--pylab
odipython
jakiegoś czasu. Importujenumpy
i (części)matplotlib
. Dodałem--Inter...
opcję, więc nie używa*
importu, ponieważ wolę używać jawnegonp....
.Może to być skrót, alias lub skrypt.
źródło