Wanneer ik !pip install geocoder
in Jupyter Notebook uitvoer, krijg ik dezelfde output als het uitvoeren van pip install geocoder
in de terminal, maar het geocoder-pakket is niet beschikbaar wanneer ik het probeer om het te importeren.
Ik gebruik Ubuntu 14.04, Anaconda 4.0.0 en pip 8.1.2
Geocoder installeren:
!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
Probeer het dan te importeren:
import geocoder
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-4-603a981d39f2> in <module>()
----> 1 import geocoder
ImportError: No module named geocoder
Ik heb ook geprobeerd de notebook af te sluiten en opnieuw op te starten zonder succes.
Bewerken:ik ontdekte dat het gebruik van de terminal het geocoder-pakket in /home/ubuntu/.local/lib/python2.7/site-packages
installeert en een notebook installeert het in /usr/local/lib/python2.7/dist-packages
wat niet in het pad staat. sys.path.append('/usr/local/lib/python2.7/dist-packages')
lost het probleem voor de huidige sessie op.
Dus hoe kan ik het pad permanent wijzigen of pip vertellen waar ik geocoder moet installeren?
Antwoord 1, autoriteit 100%
! pip install --user <package>
De !
vertelt de notebook om de cel uit te voeren als een shell-opdracht.
Antwoord 2, autoriteit 96%
In IPython (jupyter
) 7.3 en later is er een magische opdracht %pip
en %conda
die in de huidige kernel wordt geïnstalleerd (in plaats van in de instantie van Python die de notebook lanceerde).
%pip install geocoder
In eerdere versies moet u sys gebruiken om het probleem op te lossen, zoals in het antwoord van FlyingZebra1
import sys
!{sys.executable} -m pip install geocoder
Antwoord 3, autoriteit 43%
%pip install fedex #fedex = package name
in 2019.
In oudere versies van conda:
import sys
!{sys.executable} -m pip install fedex #fedex = package name
*opmerking – u moet sys importeren
Antwoord 4, autoriteit 5%
In jupyter notebook onder python 3.6 werkt de volgende regel:
!source activate py36;pip install <...>
Antwoord 5, autoriteit 5%
Dit werkte voor mij in Jupyter nOtebook /Mac Platform /Python 3:
import sys
!{sys.executable} -m pip install -r requirements.txt
Antwoord 6, autoriteit 4%
Het probleem is dat pyarrow
door pip
wordt opgeslagen in dist-packages
(in jouw geval /usr/local/lib/python2.7/dist-packages
). Dit pad wordt overgeslagen door Jupyter, dus pip
zal niet helpen.
Als oplossing raad ik aan om het eerste blok toe te voegen
import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages')
of wat dan ook de pad- of pythonversie is. In het geval van Python 3.5 is dit
import sys
sys.path.append("/usr/local/lib/python3.5/dist-packages")
Antwoord 7
Probeer wat shell-magie te gebruiken: %%sh
%%sh pip install geocoder
laat me weten of het werkt, bedankt
Antwoord 8
Alternatieve optie:
je kunt ook een bash-cel in jupyter maken met bash-kernel en dan pip install geocoder
. Dat zou moeten werken
Antwoord 9
Ik had hetzelfde probleem.
Ik vond deze instructies die voor mij werkten.
# Example of installing handcalcs directly from a notebook
!pip install --upgrade-strategy only-if-needed handcalcs
ref: https:/ /docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
Er kunnen problemen optreden wanneer pip en conda samen worden gebruikt. Bij het combineren
conda en pip, is het het beste om een geïsoleerde conda-omgeving te gebruiken. Alleen
nadat conda is gebruikt om zoveel mogelijk pakketten te installeren
moet pip worden gebruikt om de resterende software te installeren. Als wijzigingen
nodig zijn voor de omgeving, is het het beste om een nieuwe omgeving te creëren
in plaats van conda na pip te laten lopen. Indien van toepassing, conda en pip
vereisten moeten worden opgeslagen in tekstbestanden.We raden u aan:
Gebruik pip alleen na conda
Installeer zoveel mogelijk vereisten met conda en gebruik vervolgens pip.
Pip moet worden uitgevoerd met –upgrade-strategy only-if-needed (de standaardinstelling).
Gebruik pip niet met het –user argument, vermijd alle gebruikersinstallaties.
Antwoord 10
conda create -n py27 python=2.7 ipykernel
source activate py27
pip install geocoder
Antwoord 11
Het gebruik van pip2 werkte voor mij:
!pip2 install geocoder
...
import geocoder
g = geocoder.google('Mountain View, CA')
g.latlng
[37.3860517, -122.0838511]