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.
Tar mana yang harus saya unduh dari situs ini?
Saya sudah mencoba fortrans, tetapi saya terus mendapatkan kesalahan ini (setelah menetapkan variabel lingkungan jelas).
Jawaban:
Halaman web SciPy digunakan untuk memberikan instruksi pembangunan dan instalasi, tetapi instruksi di sana sekarang bergantung pada distribusi biner OS. Untuk membangun SciPy (dan NumPy) pada sistem operasi tanpa paket yang telah dikompilasi dari pustaka yang diperlukan, Anda harus membuat dan kemudian secara statis menautkan ke pustaka Fortran BLAS dan LAPACK :
Jalankan hanya satu dari lima perintah g77 / gfortran / ifort. Saya sudah berkomentar semua, tapi gfortran yang saya gunakan. Instalasi LAPACK selanjutnya membutuhkan kompiler Fortran 90 , dan karena kedua pemasangan harus menggunakan kompiler Fortran yang sama, G77 tidak boleh digunakan untuk BLAS.
Selanjutnya, Anda harus menginstal barang-barang LAPACK. Petunjuk halaman web SciPy juga membantu saya di sini, tetapi saya harus memodifikasinya agar sesuai dengan lingkungan saya:
Pembaruan pada 3-Sep-2015: Terverifikasi beberapa komentar hari ini (terima kasih untuk semua): Sebelum menjalankan
make lapacklib
editmake.inc
file dan tambahkan-fPIC
opsi keOPTS
danNOOPT
pengaturan. Jika Anda menggunakan arsitektur 64bit atau ingin mengompilasinya, tambahkan juga-m64
. Adalah penting bahwa BLAS dan LAPACK dikompilasi dengan opsi-opsi ini diatur ke nilai yang sama. Jika Anda lupa-fPIC
SciPy benar-benar akan memberi Anda kesalahan tentang simbol yang hilang dan akan merekomendasikan switch ini. Bagian spesifikmake.inc
tampilannya seperti ini di pengaturan saya:Pada mesin lama (mis. RedHat 5), gfortran mungkin diinstal dalam versi yang lebih lama (misal 4.1.2) dan tidak mengerti opsi
-frecursive
. Cukup hapus darimake.inc
file dalam kasus seperti itu.Target uji lapack dari Makefile gagal dalam pengaturan saya karena tidak dapat menemukan perpustakaan blas. Jika Anda teliti, Anda dapat memindahkan pustaka blas untuk sementara waktu ke lokasi yang ditentukan untuk menguji lapack. Saya orang yang malas, jadi saya percaya para devs membuatnya bekerja dan memverifikasi hanya di SciPy.
sumber
make.inc
file dengan mengaturOPTS = -O2 -fPIC
danNOOPT = -O0 -fPIC
.export LAPACK=~/src/lapack-3.5.0/
alih - alih menambahkanlibflapack.a
pada akhirnya.Jika Anda perlu menggunakan versi SciPy terbaru daripada versi paket, tanpa melalui kerumitan membangun BLAS dan LAPACK, Anda dapat mengikuti prosedur di bawah ini.
Instal pustaka aljabar linier dari repositori (untuk Ubuntu),
Kemudian instal SciPy, (setelah mengunduh sumber SciPy):
python setup.py install
atauSeperti halnya mungkin.
sumber
libopenblas-dev
kelibblas-dev
(Ubuntu 10,04).sudo apt-get install python-dev
memperbaikinya. stackoverflow.com/a/21530768/125507sudo yum install blas-devel lapack-devel
bekerja untuk sayaDi Fedora, ini berfungsi:
Jangan lupa untuk menginstal ' lapack-devel ' dan ' blas-devel ' selain 'blas' dan 'lapack' jika tidak, Anda akan mendapatkan kesalahan yang Anda sebutkan atau kesalahan "numpy.distutils.system_info. LapackNotFoundError ".
sumber
blas-static
&lapack-static
Diperlukan untuk saya di fedora 20.Saya kira Anda berbicara tentang instalasi di Ubuntu. Cukup gunakan:
Itu harus mengurus kompilasi perpustakaan BLAS juga. Lain, kompilasi perpustakaan BLAS sangat sulit.
sumber
pip install scipy
atau membangunnya dari sumber di lingkungan virtual.Untuk pengguna Windows ada paket biner yang bagus dari Chris (peringatan: ini adalah unduhan yang cukup besar, 191 MB):
sumber
Mengikuti instruksi yang diberikan oleh 'cfi' bekerja untuk saya, meskipun ada beberapa bagian yang mereka butuhkan:
1) Direktori lapack Anda, setelah unzipping, dapat disebut lapack-XY (beberapa nomor versi), jadi Anda bisa mengganti nama itu menjadi LAPACK.
2) Dalam direktori itu, Anda mungkin perlu melakukan:
sumber
Coba gunakan
sumber