ipython instaluje nowe moduły
Jestem przyzwyczajony do funkcji R instalowania pakietów i próbuję zrobić to samo z ipythonem. Czasami działa następująca metoda, ale czasem znów nie działa i chciałbym wreszcie dowiedzieć się, dlaczego działa tylko w połowie.
Normalnie, aby zainstalować moduł (taki jakrequests
moduł na przykład) Po otwarciu nowego terminala wpisałbym następujące polecenie:
$ sudo pip install requests
Password: *******
Po tym nastąpiłby komunikat wskazujący, że instalacja się powiodła lub że została już zainstalowana.
Requirement already satisfied (use --upgrade to upgrade):
requests in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Cleaning up...
Co sugeruje, że można uzyskać dostęp do kodu. I rzeczywiście, jeśli uruchomię teraz pythona z terminala, to pokazuje on dobrą odpowiedź bez żadnych błędów.
$ python
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:20:15)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>>
Teraz otwieram PyLab przez Alfreda i to daje mi błąd.
Welcome to pylab, a matplotlib-based Python environment [backend: WXAgg].
For more information, type 'help(pylab)'.
In [1]: import requests
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/Users/vincentwarmerdam/<ipython-input-1-686486c241c8> in <module>()
----> 1 import requests
ImportError: No module named requests
Przeczytałem pomoc z innego pytania na temat stackoverflow (tutajhttp://bit.ly/1148FRL) co sugeruje, że instaluję moduł z powłoki ipython. Daje to jeszcze więcej odpowiedzi na pytanie:
In [2]: !pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Cleaning up...
In [3]: import requests
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/Users/vincentwarmerdam/<ipython-input-3-686486c241c8> in <module>()
----> 1 import requests
ImportError: No module named requests
Wydaje mi się to bardzo dziwne. Czy w systemie jest zainstalowanych wiele wersji pythona? Jak mogę to sprawdzić? Czy muszę wskazać ipython na lokalizację zainstalowanego kodu?