Numpy: kesalahan impor dari numpy

Dibuat pada 24 Des 2016  ·  4Komentar  ·  Sumber: numpy/numpy

Hai,
Ketika saya menulis:"from numpy import *" from code dan mengeksekusi kode, maka temui kesalahan berikut:

Traceback (most recent call last):

File "rgbtoyuv.py", baris 2, di
impor numpy sebagai np
File "/usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/__init__.py", baris 163, di
dari . impor acak
File "/usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/random/__init__.py", baris 99, di
dari .mtrand impor *
ImportError: /usr/local/lib/python3.5/site-packages/numpy-1.11.2-py3.5-linux-x86_64.egg/numpy/random/mtrand.cpython-35m-x86_64-linux-gnu.so : simbol tidak terdefinisi: PyFPE_jbuf

Platform ubuntu16.04 x86_64

versi python: 3.5.2

versi numpy versi:1.9.0 juga, tetapi gagal diinstal.

Tolong bantu saya menemukan alasannya, terima kasih banyak.

Komentar yang paling membantu

Sepertinya laporan bug bagi saya?

Beberapa petunjuk tentang apa yang terjadi di sini:

CPython memiliki beberapa kode opsional untuk menangkap SIGFPE dan mengubahnya menjadi pengecualian. Untuk menggunakannya, Anda membungkus perhitungan floating point tingkat-C dalam PyFPE_START_PROTECT / PyFPE_END_PROTECT . Jika CPython dikompilasi dengan --with-fpectl (yang sesuai dengan memiliki #define WANT_SIGFPE_HANDLER di pyconfig.h ), maka PyFPE_jbuf diekspor sebagai simbol global, dan makro ini berkembang menjadi beberapa hal pintar yang merujuk pada simbol ini. Jika CPython dikompilasi tanpa --with-fpectl , maka simbol tidak diekspor dan makro menjadi tanpa operasi. Jadi ini berarti bahwa CPython sebenarnya memiliki ABI yang berbeda dan tidak kompatibel tergantung pada apakah itu dikompilasi dengan atau tanpa --with-fpectl . Sukacita.

(Sepertinya Anda dapat memeriksa jenis CPython yang Anda miliki dengan melakukan import fpectl -- jika ini berhasil maka Anda memiliki CPython --with-fpectl .)

Numpy sendiri tidak menggunakan makro ini. Tapi kode autogenerated Cython menggunakannya.

Kesimpulan: jika Anda mengkompilasi modul Cython menggunakan CPython yang dibuat dengan --with-fpectl , maka modul tersebut akan macet saat Anda mencoba menjalankannya di CPython yang dibuat tanpa --with-fpectl .

Pemeriksaan cepat beberapa build CPython linux umum untuk melihat mana yang menggunakan --with-fpectl :

  • Manylinux: tidak
  • Pengujian Debian saat ini: ya
  • Ubuntu 12.04: ya
  • Ubuntu 16.04: ya
  • Conda: tidak (diperiksa 2.7 dan 3.5)
  • Fedora 25: tidak

@kevinzhai80 : Apakah Anda kebetulan membuat numpy dari sumber untuk beberapa alasan, menggunakan Python yang diinstal Ubuntu, dan kemudian mencoba mengimpornya dari Python yang diinstal conda?

Semua 4 komentar

Di mana Anda mendapatkan numpy? BTW, pertanyaan seperti ini harus ditanyakan di milis, masalah github adalah untuk bug

Sepertinya laporan bug bagi saya?

Beberapa petunjuk tentang apa yang terjadi di sini:

CPython memiliki beberapa kode opsional untuk menangkap SIGFPE dan mengubahnya menjadi pengecualian. Untuk menggunakannya, Anda membungkus perhitungan floating point tingkat-C dalam PyFPE_START_PROTECT / PyFPE_END_PROTECT . Jika CPython dikompilasi dengan --with-fpectl (yang sesuai dengan memiliki #define WANT_SIGFPE_HANDLER di pyconfig.h ), maka PyFPE_jbuf diekspor sebagai simbol global, dan makro ini berkembang menjadi beberapa hal pintar yang merujuk pada simbol ini. Jika CPython dikompilasi tanpa --with-fpectl , maka simbol tidak diekspor dan makro menjadi tanpa operasi. Jadi ini berarti bahwa CPython sebenarnya memiliki ABI yang berbeda dan tidak kompatibel tergantung pada apakah itu dikompilasi dengan atau tanpa --with-fpectl . Sukacita.

(Sepertinya Anda dapat memeriksa jenis CPython yang Anda miliki dengan melakukan import fpectl -- jika ini berhasil maka Anda memiliki CPython --with-fpectl .)

Numpy sendiri tidak menggunakan makro ini. Tapi kode autogenerated Cython menggunakannya.

Kesimpulan: jika Anda mengkompilasi modul Cython menggunakan CPython yang dibuat dengan --with-fpectl , maka modul tersebut akan macet saat Anda mencoba menjalankannya di CPython yang dibuat tanpa --with-fpectl .

Pemeriksaan cepat beberapa build CPython linux umum untuk melihat mana yang menggunakan --with-fpectl :

  • Manylinux: tidak
  • Pengujian Debian saat ini: ya
  • Ubuntu 12.04: ya
  • Ubuntu 16.04: ya
  • Conda: tidak (diperiksa 2.7 dan 3.5)
  • Fedora 25: tidak

@kevinzhai80 : Apakah Anda kebetulan membuat numpy dari sumber untuk beberapa alasan, menggunakan Python yang diinstal Ubuntu, dan kemudian mencoba mengimpornya dari Python yang diinstal conda?

Hai njsmith,
Terima kasih atas informasi Anda, masalah ini teratasi.

Terima kasih njsmith. Juga: Ubuntu 17.10 Artful no . Peningkatan menyebabkan kesalahan:
$ python
Python 2.7.14 (default, 23 Sep 2017, 22:06:14)
[GCC 7.2.0] di linux2
Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.

impor ffectl
Traceback (panggilan terakhir terakhir):
berkas "", baris 1, di
ImportError: Tidak ada modul bernama fpectl

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

astrofrog picture astrofrog  ·  4Komentar

keithbriggs picture keithbriggs  ·  3Komentar

MorBilly picture MorBilly  ·  4Komentar

qualiaa picture qualiaa  ·  3Komentar

dmvianna picture dmvianna  ·  4Komentar