Instalacja systemu Windows Scipy: nie znaleziono zasobów Lapack / Blas

169

Próbuję zainstalować Pythona i serię pakietów na 64-bitowym pulpicie Windows 7. Zainstalowałem Python 3.4, mam zainstalowany Microsoft Visual Studio C ++ i pomyślnie zainstalowałem numpy, pandas i kilka innych. Podczas próby zainstalowania programu Scipy pojawia się następujący błąd;

numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

Używam pip install offline, polecenie instalacji, którego używam, to;

pip install --no-index --find-links="S:\python\scipy 0.15.0" scipy

Przeczytałem posty tutaj dotyczące wymagania kompilatora, który, jeśli dobrze rozumiem, jest kompilatorem VS C ++. Używam wersji 2010, ponieważ używam Pythona 3.4. To zadziałało w przypadku innych pakietów.

Czy muszę używać pliku binarnego okna, czy jest sposób, aby zainstalować pip?

Wielkie dzięki za pomoc

tjb305
źródło
4
Myślę, że wymaga kompilatora Fortran. Ale jeśli gotowe pliki binarne są akceptowalne, możesz użyć pakietów numpy i scipy wheel Christopha Gohlkego z pip.
Eryk Sun
Dzięki Eryksun, pobieram pliki binarne, aby sprawdzić, czy to rozwiąże problem.
tjb305
Irytujące, kiedy próbuję zainstalować plik binarny, twierdzi, że nie mam zainstalowanego Pythona 3.4, mimo że jest w PATH.
tjb305
Spróbujpy -3.4 -m pip install SomePackage.whl
Eryk Sun
2
Ja też miałem ten problem. Nie udało mi się zmusić pip do pracy, ale to zadziałało dla mnie (na Wdowy): sourceforge.net/projects/scipy/files/scipy
MackM

Odpowiedzi:

33

Rozwiązanie problemu braku bibliotek BLAS / LAPACK dla instalacji SciPy w 64-bitowym systemie Windows 7 opisano tutaj:

http://www.scipy.org/scipylib/building/windows.html

Instalacja Anacondy jest znacznie łatwiejsza, ale nadal nie otrzymujesz wsparcia dla Intel MKL lub GPU bez zapłacenia za to (są one w dodatkach MKL Optimizations i Accelerate dla Anacondy - nie jestem pewien, czy używają też PLASMA i MAGMA) . Dzięki optymalizacji MKL firma numpy przewyższyła IDL 10-krotnie w obliczeniach na dużych macierzach. MATLAB wykorzystuje wewnętrznie bibliotekę Intel MKL i obsługuje obliczenia na GPU, więc równie dobrze można ją wykorzystać za tę cenę, jeśli jest studentem (50 USD za MATLAB + 10 USD za zestaw narzędzi do obliczeń równoległych). Jeśli otrzymasz bezpłatną wersję próbną Intel Parallel Studio, zawiera ona bibliotekę MKL, a także kompilatory C ++ i FORTRAN, które przydadzą się, jeśli chcesz zainstalować BLAS i LAPACK z MKL lub ATLAS w systemie Windows:

http://icl.cs.utk.edu/lapack-for-windows/lapack/

Parallel Studio jest również wyposażony w bibliotekę Intel MPI, przydatną w aplikacjach do obliczeń klastrowych i ich najnowszych procesorach Xeon. Chociaż proces tworzenia BLAS i LAPACK z optymalizacją MKL nie jest trywialny, korzyści płynące z tego dla Pythona i R są dość duże, jak opisano w tym webinarium Intela:

https://software.intel.com/en-us/articles/powered-by-mkl-accelerating-numpy-and-scipy-performance-with-intel-mkl-python

Anaconda i Enthought rozwinęły firmy dzięki ułatwieniu wdrażania tej funkcji i kilku innych rzeczy. Jest jednak swobodnie dostępny dla tych, którzy chcą trochę popracować (i trochę się uczyć).

Dla tych, którzy używają R, możesz teraz bezpłatnie uzyskać BLAS i LAPACK zoptymalizowane pod kątem MKL dzięki R Open z Revolution Analytics.

EDYCJA: Anaconda Python jest teraz dostarczana z optymalizacją MKL, a także obsługą wielu innych optymalizacji bibliotek Intela za pośrednictwem dystrybucji Intel Python. Jednak wsparcie GPU dla Anacondy w bibliotece Accelerate (wcześniej znanej jako NumbaPro) wciąż przekracza 10 000 USD! Najlepszą alternatywą są prawdopodobnie PyCUDA i scikit-cuda, ponieważ copperhead (zasadniczo darmowa wersja Anaconda Accelerate) niestety zaprzestał rozwoju pięć lat temu. Można go znaleźć tutaj, jeśli ktoś chce kontynuować od miejsca, w którym przerwał.

Adam Erickson
źródło
Jedynym problemem z icl.cs.utk.edu/lapack-for-windows/lapack jest to, że jest mylący. Czy ktoś ma wskazówki, co z tym zrobić?
gseattle
1
Krótka odpowiedź: użyj Anaconda
jordiburgos
Używam Anacondy i nadal otrzymuję błąd. Musiałem pobrać plik whl, w tym mkl, i zainstalować go, aby działał. (Zobacz odpowiedź Jaanus' poniżej: waniliowym numpy nie wystarczy)
marzec
1
2017 tutaj - mam to działające przy użyciu metody tutaj . Nie jest tak źle, gdy już zrozumiesz, ale nie jest to tak proste, jak powinno.
Jonathan Porter
Pierwszy link jest uszkodzony. Myślę, że zamiast tego powinno to być scipy.github.io/devdocs/building/windows.html .
ChickenFeet
120

Poniższy link powinien rozwiązać wszystkie problemy z Windows i SciPy ; po prostu wybierz odpowiedni plik do pobrania. Udało mi się zainstalować pakiet za pomocą pip bez żadnych problemów. Każde inne rozwiązanie, które wypróbowałem, przyprawiało mnie o duży ból głowy.

Źródło: http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

Komenda:

 pip install [Local File Location]\[Your specific file such as scipy-0.16.0-cp27-none-win_amd64.whl]

Zakłada się, że masz już zainstalowane następujące elementy:

  1. Zainstaluj program Visual Studio 2015/2013 z narzędziami Python
    (jest zintegrowany z opcjami konfiguracji podczas instalacji 2015)

  2. Zainstaluj kompilator Visual Studio C ++ dla języka Python
    Source: http://www.microsoft.com/en-us/download/details.aspx?id=44266
    Nazwa pliku:VCForPython27.msi

  3. Zainstaluj wybraną wersję języka Python
    Źródło: python.org
    Nazwa pliku (np.):python-2.7.10.amd64.msi

drewid
źródło
9
@Nozdrum i ci, którzy chcą używać tej metody, wystarczy zainstalować numpy + mkl przed scipy, aby mieć dostęp do blas.
Holt
1
Możesz również chcieć użyć instalacji SciPy z tej samej witryny wskazanej przez @Holt. Musiałem użyć Numpy + MKL i SciPy dostarczonych w plikach WHL, aby to działało.
Jesuisme
2
Rozumiem, że to rozwiązanie działa tylko z Pythonem 2.7? Wygląda na to, że nie ma kompilatora Pythona 3 od sierpnia 2016 r.
geneorama
2
To działa jak urok. Możesz chcieć zauważyć, że cp27 w nazwach plików wskazuje na wersję Pythona, dla którego jest .whl, więc pobierz cp35, jeśli używasz Pythona 3.5, cp27 dla 2.7 itd.
Alexander Micklewright
2
Chciałem tylko podkreślić, co napisał @AlexanderMicklewright. Nie było dla mnie oczywiste, że cpXXodnosi się to do wersji XX (C) Pythona. Po prostu domyślnie wybrałem najwyższą wersję cp36, chociaż używam Pythona 3.5.
Czechnology
98

Wersja mojego Pythona to 2.7.10, 64-bitowy Windows 7.

  1. Pobierz scipy-0.18.0-cp27-cp27m-win_amd64.whlzhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
  2. otwarty cmd
  3. Upewnij się, że scipy-0.18.0-cp27-cp27m-win_amd64.whlznajduje się w cmdaktualnym katalogu użytkownika, a następnie wpisz pip install scipy-0.18.0-cp27-cp27m-win_amd64.whl.

Zainstaluje się pomyślnie.

stmatengss
źródło
17
To powinno być oznaczone jako odpowiedź; zadziałało i jest to najbardziej bezbolesny sposób instalacji.
Tensigh,
Nie jestem pewien, jaką rolę pełni tutaj plik scikits.vectorplot-0.1.1-cp27-none-win_amd64.whl. Właśnie pobrałem plik scipy-0.18.0-cp27-cp27m-win_amd64.whl z podanego linku, który pomyślnie zainstalował scipy. Następnie zostałem poproszony o pominięcie numpy + mkl. Pobrałem za pomocą tego samego linku i zainstalowałem za pomocą pip install. Działa świetnie i zgadzam się, że to najłatwiejsze rozwiązanie, z jakim się spotkałem.
beeprogrammer
5
Działa również z Pythonem 3.6 i Windows 10.
Dzięki! proste i łatwe rozwiązanie
Dinesh
Twoje rozwiązanie działało również z Pythonem 3.5 i Windows 10.
Nicola Pesavento
30

Przepraszamy za necro, ale to jest pierwszy wynik wyszukiwania Google. Oto rozwiązanie, które u mnie zadziałało:

  1. Pobierz koło numpy + mkl z http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy . Użyj wersji, która jest taka sama jak twoja wersja Pythona (sprawdź używając python -V). Na przykład. jeśli twój Python to 3.5.2, pobierz koło, które pokazuje cp35

  2. Otwórz wiersz polecenia i przejdź do folderu, w którym pobrałeś koło. Uruchom polecenie: pip install [nazwa pliku koła]

  3. Pobierz koło SciPy ze strony: http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (podobnie jak w powyższym kroku).

  4. Jak wyżej, pip install [nazwa pliku koła]

aleksk
źródło
Umieszczanie odpowiedzi na martwe pytania jest całkowicie w porządku. W rzeczywistości sprawdzamy to za każdym razem, gdy robi to nowy użytkownik.
Nissa,
2
To zadziałało dla mnie w 32-bitowym Pythonie 3.5 w 64-bitowym systemie Windows 8, od 8 stycznia 2017 r.
Rob Mulder
1
dzięki, pracowałem dla Pythona 3.6 z numpy 1.13.1 + mkl, pandas 0.20.3, scikit-learn 0.18.2, scipy 0.19.1
zina
1
to działało dla mnie na Windows 10 x64 przy użyciu Pythona 3.6.2
Jeff Lindborg,
20

To była kolejność, w której wszystko działało. Drugi punkt jest najważniejszy. Scipy potrzebuje Numpy+MKL, nie tylko wanilii Numpy.

  1. Zainstaluj Pythona 3.5
  2. pip install "file path"(pobierz koło Numpy + MKL stąd http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy )
  3. pip install scipy
Jaanus
źródło
7
Cóż, wykonałem kroki 1) i 2), ale w trzecim otrzymałem ten sam błąd. Więc po krokach 1) i 2) musiałem ręcznie pobrać pakiet Scipy.whl stąd: lfd.uci.edu/~gohlke/pythonlibs/#scipy i pip install „scipy download path”. Teraz działa świetnie!
Geraldo Neto
5

Jeśli pracujesz z systemem Windows i Visual Studio 2015

Wprowadź następujące polecenia

  • „conda install numpy”
  • „Conda install pandy”
  • „conda install scipy”
maniak
źródło
2

Prosta i szybka instalacja Scipy w systemie Windows

  1. Od http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipypobrania prawidłowy pakiet scipy dla danej wersji Pythona (np poprawny pakiet dla Pythona 3.5 i Windows x64 jest scipy-0.19.1-cp35-cp35m-win_amd64.whl).
  2. Otwórz cmdw katalogu zawierającym pobrany pakiet Scipy.
  3. Typ pip install <<your-scipy-package-name>>(np. Pip install scipy-0.19.1-cp35-cp35m-win_amd64.whl).
Nicola Pesavento
źródło
5
Otrzymałem „scipy-0.19.1-cp36-cp36m-win_amd64.whl nie jest obsługiwanym kołem na tej platformie”. kiedy to robisz.
obłąkany jeż
1

Firma Intel zapewnia teraz bezpłatną dystrybucję języka Python dla systemu Linux / Windows / OS X o nazwie „ dystrybucja Intel dla języka Python ”.

Jest to kompletna dystrybucja Pythona (np. Python.exe jest zawarta w pakiecie), która zawiera kilka wstępnie zainstalowanych modułów skompilowanych w oparciu o MKL (Math Kernel Library) firmy Intel, a tym samym zoptymalizowanych pod kątem większej wydajności.

Dystrybucja zawiera moduły NumPy, SciPy, scikit-learn, pandas, matplotlib, Numba, tbb, pyDAAL, Jupyter i inne. Wadą jest trochę spóźnienia w aktualizacji do nowszych wersji Pythona. Na przykład na dzień dzisiejszy (1 maja 2017) dystrybucja zapewnia CPython 3.5, podczas gdy wersja 3.6 jest już dostępna. Ale jeśli nie potrzebujesz nowych funkcji, powinny działać idealnie.

raffaem
źródło
Czy wiesz, czy używane biblioteki BLAS są „dynamiczne”? Używam theano i jeśli biblioteki są „statyczne”, pojawia się wiele problemów.
Daniel Möller
@Daniel co masz na myśli mówiąc o bibliotekach statycznych? Python jest językiem interpretowanym. Jak korzystasz z bibliotek połączonych statycznie? Ale ja nie jestem ekspertem w tej dziedzinie. Więc prawdopodobnie czegoś mi brakuje
raffaem
O, też nie rozumiem tego zbyt dobrze. Ale to prawdziwy problem przy korzystaniu z theano. Wymaga, aby biblioteki BLAS były dynamiczne (być może dynamicznie połączone z numpy zamiast statycznie połączone z numpy?) - Pyton używa serii skompilowanych bibliotek, dlatego może działać tak szybko, chociaż jest interpretowany.
Daniel Möller,
1

Otrzymałem ten sam błąd podczas instalacji scikit-fuzzy. Rozwiązałem błąd w następujący sposób:

  1. Zainstaluj Numpy , plik whl
  2. Zainstaluj Scipy , ponownie plik whl

wybierz plik zgodnie z wersją Pythona, np. amd64 dla python3 i inny plik win32 dla python27

  1. następnie pip install --user skfuzzy

Mam nadzieję, że to zadziała

Rochan
źródło
0

Skorzystanie z zasobów dostępnych pod adresem http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy rozwiąże problem. Należy jednak uważać na zgodność wersji. Po kilku próbach w końcu zdecydowałem się odinstalować Pythona, a następnie zainstalowałem nową wersję Pythona wraz z numpy, a następnie zainstalowałem scipy, co rozwiązało mój problem.

Sobhan Moosavi
źródło
Zachęcamy do umieszczania linków do zewnętrznych zasobów, ale proszę dodać kontekst wokół łącza, aby inni użytkownicy mieli pojęcie, co to jest i dlaczego się tam znajduje. Zawsze cytuj najbardziej odpowiednią część ważnego linku, na wypadek gdyby strona docelowa była nieosiągalna lub została trwale wyłączona.
pableiros,
0

zrób to, rozwiązało to dla mnie pip install -U scikit-learn

Uday
źródło