Ich tippe import numpy as np
fast jedes Mal, wenn ich den Python-Interpreter starte. Wie richte ich den Python- oder Ipython-Interpreter so ein, dass numpy automatisch importiert wird?
Ich tippe import numpy as np
fast jedes Mal, wenn ich den Python-Interpreter starte. Wie richte ich den Python- oder Ipython-Interpreter so ein, dass numpy automatisch importiert wird?
Antworten:
Verwenden Sie die Umgebungsvariable PYTHONSTARTUP . Aus der offiziellen Dokumentation:
Wenn dies der Name einer lesbaren Datei ist, werden die Python-Befehle in dieser Datei ausgeführt, bevor die erste Eingabeaufforderung im interaktiven Modus angezeigt wird. Die Datei wird in demselben Namespace ausgeführt, in dem interaktive Befehle ausgeführt werden, sodass darin definierte oder importierte Objekte ohne Einschränkung in der interaktiven Sitzung verwendet werden können.
Erstellen Sie einfach ein Python-Skript mit der import-Anweisung und zeigen Sie mit der Umgebungsvariablen darauf. Denken Sie jedoch daran, dass "Explizit immer besser als implizit ist". Verlassen Sie sich daher bei Produktionsskripten nicht auf dieses Verhalten.
Informationen zu Ipython finden Sie in diesem Tutorial zum Erstellen einer ipython_config-Datei
env PYTHONSTARTUP="~/.startup.py"
hat bei mir nicht funktioniert
export PYTHONSTARTUP=~/.python_shell_startup.py
zum Einstellen der Variablen.
Für Ipython gibt es zwei Möglichkeiten, dies zu erreichen. Bei beiden handelt es sich um das Konfigurationsverzeichnis von ipython, das sich in befindet ~/.ipython
.
~/.ipython/profile_default/startup/
Der Einfachheit halber würde ich Option 2 verwenden. Alles, was Sie tun müssen, ist, eine .py
oder .ipy
-Datei in das ~/.ipython/profile_default/startup
Verzeichnis zu legen, und sie wird automatisch ausgeführt. Sie können also einfach import numpy as np
in eine einfache Datei einfügen und haben np im Namespace Ihrer ipython-Eingabeaufforderung.
Option 2 funktioniert tatsächlich mit einem benutzerdefinierten Profil. Wenn Sie jedoch ein benutzerdefiniertes Profil verwenden, können Sie die Startanforderungen und andere Konfigurationen basierend auf einem bestimmten Fall ändern. Allerdings, wenn Sie würde immer wie np
Sie dann zur Verfügung steht mit allen Mitteln es im Startverzeichnis gesetzt.
Weitere Informationen zur Ipython-Konfiguration. Die Dokumente haben eine viel vollständigere Erklärung.
~/.config/ipython/profile_default/startup/
und nicht~/.ipython/profile_default/startup/
Ich benutze eine ~ / .startup.py-Datei wie folgt:
# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")
pp = pprint.pprint
Definieren Sie dann PYTHONSTARTUP = ~ / .startup.py, und Python verwendet es beim Starten einer Shell.
Die print-Anweisungen sind vorhanden. Wenn ich die Shell starte, werde ich daran erinnert, dass sie wirksam ist und was bereits importiert wurde. Die pp
Verknüpfung ist auch sehr praktisch ...
~
als Ersatz für $HOME
Werke funktioniert oder nicht, aber anstelle dieses relativen Pfades musste ich unter MacOS, fish und python3 einen absoluten Pfad verwenden.
Während das Erstellen eines benutzerdefinierten Startskripts , wie es ravenac95 vorschlägt, in den meisten Fällen die beste allgemeine Antwort ist, funktioniert es unter Umständen nicht, unter denen Sie a verwenden möchten from __future__ import X
. Wenn Sie manchmal in Python 2.x arbeiten, aber die moderne Division verwenden möchten, gibt es nur einen Weg, dies zu tun. Wenn Sie ein Profil erstellt haben, bearbeiten Sie das profile_default
(für Ubuntu befindet es sich in ~/.ipython/profile_default
) und fügen Sie unten Folgendes hinzu:
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
Als einfachere Alternative zur akzeptierten Antwort unter Linux:
Definieren Sie einfach einen Alias, z. B. alias pynp='python -i -c"import numpy as np"'
in Ihre ~ / .bash_aliases-Datei. Sie können dann Python + Numpy mit aufrufen pynp
und weiterhin nur Python mit verwenden python
. Das Verhalten von Python-Skripten bleibt unberührt.
PYTHONSTARTUP
wird nur im interaktiven Modus aufgerufen , sodass das Verhalten von Python-Skripten sowieso unberührt bleibt. Ein Alias könnte auch mit einem Dateiverweis erstellt werden:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Sie können einen normalen Python - Skript erstellen , wie import_numpy.py
oder was Sie wollen
#!/bin/env python3
import numpy as np
Starten Sie es dann mit der -i
Flagge.
python -i import_numpy.py
Auf diese Weise können Sie flexibel nur Module auswählen, die Sie für verschiedene Projekte benötigen.
Wie ravenac95 in seiner genannten Antwort , können Sie entweder ein eigenes Profil erstellen oder das Standardprofil ändern. Diese Antwort ist eine Schnellansicht der Linux-Befehle, die import numpy as np
automatisch benötigt werden.
Wenn Sie ein benutzerdefiniertes Profil mit dem Namen verwenden möchten, führen Sie Folgendes numpy
aus:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
Oder wenn Sie das Standardprofil so ändern möchten, dass immer numpy importiert wird:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
Weitere Informationen zum Konfigurieren von Profilen finden Sie im IPython-Konfigurations-Tutorial . Sehen Sie, um .ipython/profile_default/startup/README
zu verstehen, wie das Startverzeichnis funktioniert.
Mein Standardaufruf ipython
ist
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
ist seit ipython
einiger Zeit eine Option. Es importiert numpy
und (Teile von) matplotlib
. Ich habe die --Inter...
Option hinzugefügt, damit der *
Import nicht verwendet wird , da ich lieber die explizite Option verwende np....
.
Dies kann eine Verknüpfung, ein Alias oder ein Skript sein.