2012-05-23 10 views
30

Udało mi się zainstalować Spydera i działać na moim macu, ale chcę dodać kilka modułów, których domyślnie nie uwzględnia (mahotas i pymorph) .Dodanie modułu (konkretnie pymorph) do Spydera (Python IDE)

Zainstalowałem oba przez easy_install w terminalu i oba wydawały się instalować bez żadnych komunikatów o błędach. Uruchamianie Pythona z terminalu i użycie import mahotas i import pymorph działa dobrze bez komunikatów o błędach. Jednak gdy uruchamiam te same linie ze skryptu w zasięgu Spyder pojawia się następujący błąd:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 493, in runfile 
execfile(filename, namespace) 
File "/Users/Name/Documents/Python/dna.py", line 11, in <module> 
import pymorph 
ImportError: No module named pymorph 

Wszystko Próbuję teraz zrobić to uruchomić linie importu, to wszystko. Nie mogę niczego na ten temat znaleźć. Zgaduję, że Spyder używa oddzielnej instalacji Pythona i że instalowanie modułów za pośrednictwem terminala instaluje je tylko do systemowej wersji Pythona. Jak mogę dodać je do Spydera?

Specyfikacja:

Mac OSX 10.7.4

Spyder 2.1.9

Odpowiedz

63

Ok, nikt nie odpowiedział na to jeszcze, ale udało mi się ustalić to i dostać pracy również po zamieszczanie na forach dyskusyjnych spyder. Dla bibliotek, które chcesz dodać, które nie są zawarte w domyślnej ścieżce wyszukiwania spydera, musisz przejść do Narzędzia i dodać ścieżkę do każdej biblioteki za pośrednictwem menedżera PYTHONPATH. Będziesz wtedy musiał zaktualizować listę nazw modułów z tego samego menu i zrestartować spyder zanim zmiany zaczną obowiązywać.

+8

Dzięki - pracował dla mnie. Ale także, nie musisz restartować Spydera, po prostu zamknij interpreter, a następnie kliknij prawym przyciskiem myszy i "otwórz interpretera", aby ponownie uruchomić interpreter python. Używana jest nowa ścieżka. –

+1

Po zaimplementowaniu tego rozwiązania wydaje się, że wszystko wywołujące plik ERBeadera ibpy może się nie powieść w linii 29 z 'SyntaxError: can not assign to None'. Jeśli otrzymasz to usunięcie lub komentarz wyjdź "Brak". [Odnośnik] (https://code.google.com/p/ibpy/issues/detail?id=16) – zelusp

+0

W menu Spyder/PYTONPATH Manager –

16
  1. Znajdź lokalizację modułu w terminalu:

    $ python # open python 
    
    import pygame # import a module 
    
    pygame # get the location 
    
  2. Kopiuj-wklej folder moduł do 'Spyder.app/Contents/Resources/lib/python2.7'

  3. Relaunch Spyder.app

2

Możesz dodać Standard lokalizacja instalacji do człowieka PYTHONPATH ager. W ten sposób nie musisz dodawać konkretnej ścieżki do każdego modułu. Tylko do aktualizacji nazw modułów.

Na Unix ta lokalizacja jest zwykle:

/usr/local/lib/pythonX.Y/site-packages

W systemie Windows:

C:\PythonXY\Lib\site-packages

Zobacz the modules install Documentation.

2

I w obliczu tego samego problemu, gdy próbuje dodać moduł Seaborn w Spyder. Zainstalowałem seaborn w moim katalogu anakonda w ubuntu 14.04. Moduł Seaborn zostanie załadowany, jeśli dodaję cały katalog anaconda/lib/python2.7/site-packages /, który zawierał foldery "seaborn" i seaborn-0.5.1-py2.7.egg-info. Problem polegał na tym, że ten folder anaconda-paczki zawierał także wiele innych modułów, których Spyder nie lubił.

Moje rozwiązanie: Stworzyłem nowy katalog w moim osobistym folderze domowym, który nazwałam "spyderlibs", gdzie umieszczałem foldery seaborn i seaborn-0.5.1-py2.7.egg-info. Dodanie mojego nowego katalogu Spyderlib do menedżera PYTHONPATH Spydera zadziałało!

+0

Przykro mi z powodu komentarza na temat starej odpowiedzi, ale miałem ten właśnie problem dzisiaj ze Spyderem i seabornem, a nie było jedną odpowiedź na każdej stronie, która pomogła z wyjątkiem twojej. Więc dziękuję. –

+0

Jako dodatek do mojego poprzedniego komentarza (mam nadzieję, że widzisz to!), W jaki sposób udało ci się obejść problem, w którym interpreter spyderów przyjmuje teraz __init__.py seaborn'a jako __init__.py tego, czego próbuję użyć? W tym przypadku złamał mpfit i kilka innych rzeczy. Czy kiedykolwiek znalazłeś inne rozwiązanie? –

+0

Cieszę się, że zadziałało ... w pewnym stopniu. Nie pamiętam, aby uruchamiać błędy init.py, więc nie jestem pewien, co polecić. Niedawno zainstalowałem nowy system operacyjny i świeżo zainstalowany python 2.7, anakondę i spyder. Teraz seaborn cudownie działa ze świeżej instalacji linii poleceń conda - nie ma już potrzeby obejścia, które przedstawiłem powyżej. – Guy

24

Za pomocą ! na konsoli IPython w spyder można użyć pip. Tak więc, w tym przykładzie, można zrobić:

[1] !pip install pymorph 

Uwaga ta jest również dostępna (choć może nierzetelnie) na konsoli Pythona do wersji Spyder przed ~ 2.3.3. Dzięki @CarlosCordoba za to wyjaśnienie.

+0

Wygląda na to, że używasz starej wersji Spydera. Ta funkcjonalność została usunięta kilka wersji wcześniej (myślę, że w 2.3.3). Jednak coś takiego nadal działa z konsolą IPython. –

+0

@CarlosCordoba Ah, ok. Używam wersji 2.2.5. Szkoda tylko, że został usunięty - pozostaje jednak świetnym IDE :-) – atomh33ls

+0

Musieliśmy go usunąć z naszych konsol * Python *, ponieważ nie działał on niezawodnie we wszystkich sytuacjach (na przykład, dawał problemy podczas debugowania).Ale, jak już powiedziałem, możesz uruchomić dokładnie to samo polecenie w naszych konsolach * IPython * i będzie działać dobrze :-) –

7

Jeśli używasz Spyder w pakiecie Anaconda ...

W konsoli ipython użyć

!conda install packageName 

ta działa lokalnie zbyt.

!conda install /path/to/package.tar 

Uwaga:! jest wymagany, gdy używana jest konsola IPython z poziomu Spyder.

0

Można również wykonać poniższe czynności: '!' Spyder -> Narzędzia -> Otwórz - Wiersz polecenia> wpisz polecenie "pip install html5lib"

0

wystarczy użyć przed pip polecenia w terminalu Spyder i będzie dobrze

Np

!pip install imutils