Menggunakan Atlas dari cipy

13

Saya menginstal Ubuntu 12,04 bit. Saya perlu bekerja dengan python dan scipy, saya menginstalnya dan ketika saya menjalankan tes:

python -c "import scipy; scipy.test()"

Saya menerima pesan:

ImportError: libatlas.so.3gf: tidak dapat membuka file objek bersama: Tidak ada file atau direktori tersebut

Namun, saya memiliki perpustakaan libatlas diinstal di bawah direktori /usr/lib/atlas-base. Saya tahu saya bisa menyalin file langsung di bawah /usr/lib, tapi saya bertanya-tanya bagaimana saya bisa mengatur scipy untuk menggunakan perpustakaan dari usr/lib/atlas-base?

lmsasu
sumber
Tolong jangan melewati pos.
Karlson
Oke, hapus sekarang.
lmsasu

Jawaban:

19

Anda tidak perlu menyalin apa pun di mana pun.

Anda harus menambahkan perpustakaan atlas ke daftar lokasi yang ldakan dicari.

Dalam direktori /etc/ld.so.conf.dAnda dapat menambahkan file atlas-lib.conf. File ini harus berisi direktori libatlas.so.3gf, yaitu /usr/lib/atlas-base.

Anda dapat melakukan ini dengan menjalankan

echo "/usr/lib/atlas-base" | sudo tee /etc/ld.so.conf.d/atlas-lib.conf

Akhirnya lari

sudo ldconfig

untuk memperbarui ldsehingga mengetahui tentang file baru ini.

Atau Anda dapat mengatur LD_LIBRARY_PATHuntuk memasukkan path ke perpustakaan ketika Anda menjalankan dan itu harus tersedia dalam SciPy.

Karlson
sumber
Saya tidak yakin apakah atlas-lib.conf bisa membantu, tetapi LD_LIBRARY_PATH yang membuatnya.
lmsasu
1
@ lmsasu Saat Anda membuat file itu, Anda harus menjalankannya sudo ldconfiguntuk membuatnya aktif
Karlson
Jika Anda tidak memiliki akses root, apa yang akan menjadi pendekatan terbaik? Jika Anda akan melakukannya dengan virtualenv, bagaimana Anda melakukannya dalam kasus itu?
Albert
1
@Albert Using virtualenvadalah subjek yang sepenuhnya terpisah tetapi tanpa akses root Anda dapat mengatur LD_LIBRARY_PATHdengan cara yang tepat yang disebutkan dalam jawaban.
Karlson
Hal-hal semacam ini harus ditangani oleh paket numpy / scipy atau libatlas-dev, bukan? Saya memiliki situasi yang menarik di mana sistem numpy 1.9.1 berfungsi dengan baik, tetapi 1.9.2 numpy di virtualenv menunjukkan masalah ini. Bagaimanapun, solusi Anda memperbaikinya. Terima kasih.
drevicko
1

Bagi saya, menggunakan virtualenv, export LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}di akhir .bashrcfile saya memperbaikinya.

Sealander
sumber