it-swarm.com.de

Das Installieren eines Pip-Pakets aus einem Jupyter Notebook funktioniert nicht

Wenn ich !pip install geocoder in Jupyter Notebook ausführen, erhalte ich dieselbe Ausgabe wie pip install geocoder im Terminal, das Geocoder-Paket ist jedoch nicht verfügbar, wenn ich versuche, es zu importieren.

Ich verwende Ubuntu 14.04, Anaconda 4.0.0 und Pip 8.1.2

Geocoder installieren:

!pip install geocoder

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
Collecting geocoder
  Downloading geocoder-1.15.1-py2.py3-none-any.whl (195kB)
    100% |████████████████████████████████| 204kB 3.2MB/s 
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): ratelim in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): six in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): click in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): decorator in /usr/local/lib/python2.7/dist-packages/decorator-4.0.10-py2.7.Egg (from ratelim->geocoder)
Installing collected packages: geocoder
Successfully installed geocoder-1.15.1

Dann versuchen Sie es zu importieren:

import geocoder

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-603a981d39f2> in <module>()
----> 1 import geocoder

ImportError: No module named geocoder

Ich habe auch versucht, das Notebook herunterzufahren und ohne Glück neu zu starten.

Edit: Ich habe festgestellt, dass das Geocoder-Paket mit dem Terminal in /home/ubuntu/.local/lib/python2.7/site-packages installiert wird und ein Notebook unter /usr/local/lib/python2.7/dist- installiert wird. Pakete, die nicht im Pfad sind. sys.path.append('/usr/local/lib/python2.7/dist-packages') löst das Problem für die aktuelle Sitzung.

Wie kann ich also den Pfad dauerhaft ändern oder pip mitteilen, wo er Geocoder installiert?

18
! pip install --user <package>

Der ! weist das Notebook an, die Zelle als Shell-Befehl auszuführen.

20
Ajinkya

In IPython (jupyter) 7.3 und höher gibt es ein magisches %pip und %conda-Befehl, der im aktuellen Kernel installiert wird (und nicht in der Instanz von Python, mit der das Notizbuch gestartet wurde).

%pip install geocoder

In früheren Versionen müssen Sie sys verwenden, um das Problem zu beheben, wie in die Antwort von FlyingZebra1

import sys
!{sys.executable} -m pip install geocoder
8
Eponymous

Dieser Code hat für mich funktioniert (Windows 10/Conda installieren/in Jupyter Notebook auf Python 2.x ausgeführt)

import sys
!{sys.executable} -m pip install fedex

* note - Sie müssen sys importieren

3
FlyingZebra1

In jupyter notebook unter python 3.6 funktioniert die folgende Zeile:

!source activate py36;pip install <...>
2
robinary

Das Problem ist, dass pyarrow von pip in dist-packages (in Ihrem Fall /usr/local/lib/python2.7/dist-packages) gespeichert wird. Dieser Pfad wird von Jupyter übersprungen, so dass pip nicht helfen wird. 

Als Lösung schlage ich vor, den ersten Block hinzuzufügen

import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages')

oder was auch immer ist Pfad oder Python-Version. Im Falle von Python 3.5 ist dies

import sys
sys.path.append("/usr/local/lib/python3.5/dist-packages")
0
Dawid Laszuk

Dies funktionierte für mich in Jupyter nOtebook/Mac Platform/Python 3: 

import sys
!{sys.executable} -m pip install -r requirements.txt
0
Vinayak Gupta
conda create -n py27 python=2.7 ipykernel

source activate py27

pip install geocoder
0
Steve Ji

Alternative Option: Sie können auch eine Bash-Zelle in Jupyter erstellen, indem Sie den Bash-Kernel und dann pip install geocoder verwenden. Das sollte funktionieren

0
Mattony

Versuchen Sie es mit Shell-Magie: %% sh %%sh pip install geocoder Lassen Sie mich wissen, ob es funktioniert, danke

0
casper