numpy.distutils.system_info.BlasNotFoundError:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
Który plik tar muszę pobrać z tej strony?
Wypróbowałem fortrans, ale ciągle otrzymuję ten błąd (oczywiście po ustawieniu zmiennej środowiskowej).
Odpowiedzi:
Strona internetowa SciPy była używana do dostarczania instrukcji kompilacji i instalacji, ale teraz instrukcje tam opierają się na dystrybucjach binarnych systemu operacyjnego. Aby zbudować SciPy (i NumPy) w systemach operacyjnych bez prekompilowanych pakietów wymaganych bibliotek, musisz zbudować, a następnie statycznie połączyć się z bibliotekami Fortran BLAS i LAPACK :
Wykonaj tylko jedno z pięciu poleceń g77 / gfortran / ifort. Skomentowałem wszystko oprócz gfortranu, którego używam. Kolejna instalacja LAPACK wymaga kompilatora Fortran 90 , a ponieważ obie instalacje powinny używać tego samego kompilatora Fortran, g77 nie powinien być używany dla BLAS.
Następnie musisz zainstalować rzeczy LAPACK. Instrukcje ze strony SciPy również mi pomogły, ale musiałem je zmodyfikować, aby pasowały do mojego środowiska:
Aktualizacja w dniu 3 września 2015 r .: Zweryfikowano dziś niektóre komentarze (dzięki wszystkim): Przed uruchomieniem
make lapacklib
edytujmake.inc
plik i dodaj-fPIC
opcjęOPTS
iNOOPT
ustawienia. Jeśli korzystasz z architektury 64-bitowej lub chcesz ją skompilować, dodaj również-m64
. Ważne jest, aby BLAS i LAPACK zostały skompilowane z tymi opcjami ustawionymi na te same wartości. Jeśli zapomnisz,-fPIC
SciPy faktycznie wyświetli błąd dotyczący brakujących symboli i zaleci ten przełącznik. Konkretna sekcjamake.inc
wygląda tak w mojej konfiguracji:Na starych maszynach (np. RedHat 5) gfortran może być zainstalowany w starszej wersji (np. 4.1.2) i nie obsługuje opcji
-frecursive
.make.inc
W takich przypadkach po prostu usuń go z pliku.Cel testu lapack pliku Makefile nie działa w mojej konfiguracji, ponieważ nie może znaleźć bibliotek blas. Jeśli jesteś dokładny, możesz tymczasowo przenieść bibliotekę blas do określonej lokalizacji, aby przetestować lapack. Jestem leniwym człowiekiem, więc ufam programistom, że będą działać i weryfikować tylko w SciPy.
źródło
make.inc
plik, ustawiającOPTS = -O2 -fPIC
iNOOPT = -O0 -fPIC
.export LAPACK=~/src/lapack-3.5.0/
zamiast dodawaćlibflapack.a
na końcu.Jeśli potrzebujesz używać najnowszych wersji SciPy zamiast wersji spakowanej, bez przechodzenia przez kłopoty związane z budowaniem BLAS i LAPACK, możesz postępować zgodnie z poniższą procedurą.
Zainstaluj biblioteki algebry liniowej z repozytorium (dla Ubuntu),
Następnie zainstaluj SciPy (po pobraniu źródła SciPy):
python setup.py install
lubW przypadku.
źródło
libopenblas-dev
nalibblas-dev
(Ubuntu 10.04).sudo apt-get install python-dev
naprawione. stackoverflow.com/a/21530768/125507sudo yum install blas-devel lapack-devel
pracował dla mnieW Fedorze to działa:
Pamiętaj, aby zainstalować „ lapack-devel ” i „ blas-devel ” oprócz „blas” i „lapack”, w przeciwnym razie pojawi się błąd, o którym wspomniałeś, lub błąd „numpy.distutils.system_info. LapackNotFoundError ”.
źródło
blas-static
ilapack-static
były wymagane dla mnie na Fedorze 20.Chyba mówisz o instalacji w Ubuntu. Po prostu użyj:
Powinno to zająć się również kompilacją bibliotek BLAS. W przeciwnym razie kompilacja bibliotek BLAS jest bardzo trudna.
źródło
pip install scipy
lub budować ze źródła w środowisku wirtualnym.Dla użytkowników Windowsa jest fajny pakiet binarny autorstwa Chrisa (ostrzeżenie: jest to dość duży plik do pobrania, 191 MB):
źródło
Postępowanie zgodnie z instrukcjami podanymi przez `` cfi '' działa dla mnie, chociaż jest kilka elementów, które pominęli, których możesz potrzebować:
1) Twój katalog lapack, po rozpakowaniu, może nazywać się lapack-XY (jakiś numer wersji), więc możesz po prostu zmienić jego nazwę na LAPACK.
2) W tym katalogu może być konieczne wykonanie:
źródło
Spróbuj użyć
źródło