Numpy: ImportError: numpy.core._multiarray_umath ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ

์— ๋งŒ๋“  2018๋…„ 09์›” 03์ผ  ยท  36์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

์•ˆ๋…•ํ•˜์„ธ์š”,

NumPy(์˜ˆ: TensorFlow)๊ฐ€ ํ•„์š”ํ•œ ๋งŽ์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žˆ๋Š”๋ฐ numpy ์ชฝ์˜ ImportError ๋•Œ๋ฌธ์— ์„ค์น˜ํ•˜๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ pip install ๋ฐ ์†Œ์Šค์—์„œ ๋นŒ๋“œ ๋ชจ๋‘์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์˜ˆ์‹œ:

import numpy as np
import tensorflow as tf

์—๋Ÿฌ ๋ฉ”์‹œ์ง€:

ImportError: numpy.core._multiarray_umath failed to import

Numpy/Python ๋ฒ„์ „ ์ •๋ณด:

'1.16.0.dev0+cdbf35b'

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

pip install --upgrade numpy

์ด๊ฒƒ์€ ์ด์ „ ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜๊ณ  ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  36 ๋Œ“๊ธ€

์ด์ „ numpy์—์„œ๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ผ๋ถ€ ์‹œ์Šคํ…œ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์„ ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. import numpy as np ์„ฑ๊ณตํ•˜๊ณ  import tensorflow as tf ์‹คํŒจํ•ฉ๋‹ˆ๊นŒ? ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋ผ๋ฉด tensorflow๋Š” ์–ด๋””์„œ ๊ตฌํ•˜์…จ๋‚˜์š”? ์–ด๋–ค ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @mattip :

๊ทธ๊ฒƒ์€ (๊ฐ™์ด : ๋‚ด๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ํ›„์ž์˜ import numpy , ๊ทธ๋Ÿฌ๋‚˜ TF ๊ฐ€์ ธ ์˜ค๊ธฐ์— ์‹คํŒจ ๋…„๋Œ€ ํ•œ ๋ชจ๋“  ์ข‹์€).

๋‹ค์Œ์€ ์ „์ฒด ์ถ”์ ์ž…๋‹ˆ๋‹ค(์ตœ์‹  Miniconda ์…ธ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค).

```ํŒŒ์ด์ฌ 3.6.5 |์•„๋‚˜์ฝ˜๋‹ค, Inc.| (๊ธฐ๋ณธ๊ฐ’, 2018๋…„ 4์›” 29์ผ, 16:14:56)
์ž์„ธํ•œ ๋‚ด์šฉ์„ ๋ณด๋ ค๋ฉด '์ €์ž‘๊ถŒ', 'ํฌ๋ ˆ๋”ง' ๋˜๋Š” '๋ผ์ด์„ผ์Šค'๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.
IPython 6.5.0 -- ํ–ฅ์ƒ๋œ ๋Œ€ํ™”ํ˜• ํŒŒ์ด์ฌ. ์œ ํ˜• '?' ๋„์™€์ฃผ๊ธฐ ์œ„ํ•ด.

[1]์—์„œ: numpy๋ฅผ np๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

[2]์—์„œ: ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

ImportError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)

ImportError: numpy.core._multiarray_umath ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ

ImportError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)

ImportError: numpy.core._multiarray_umath ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ

ImportError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)

ImportError: numpy.core._multiarray_umath ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ

ImportError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)
ImportError: numpy.core._multiarray_umath ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ

[3]์—์„œ: np.__version__
์•„์›ƒ[3]: '1.15.1'
```

๋กœ์ปฌ MKL์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ์—ˆ์„ ๋•Œ๋ถ€ํ„ฐ ํ•ญ์ƒ Numpy์™€ Scipy๋ฅผ ์†Œ์Šค์—์„œ ๋นŒ๋“œํ–ˆ์ง€๋งŒ ImportError๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ pip install ing numpy๋ฅผ ๋งŒ์ง€์ž‘๊ฑฐ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์ด ์˜ค๋ฅ˜๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

In [3]: np.__version__
Out[3]: '1.15.1'

์ด์ƒํ•˜๋„ค์š”. _multiarray_umath ๋ชจ๋“ˆ์ด ๋งˆ์Šคํ„ฐ์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ตœ๊ทผ ์ฝ”๋“œ ์žฌ๋ฐฐ์—ด์ด ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ numpy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ tensorflow๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์„ค์น˜๋œ ๋ชจ๋“  ๋น„ ์‹œ์Šคํ…œ numpy ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

@charris ๊ฐ์‚ฌ

๋‚˜๋Š” ๊ณ„์†ํ•ด์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ์ •๋ง ์šฐ์—ฐ์˜ ์ผ์น˜์ธ์ง€, ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ๋„์ค‘์— ๋‚˜์œ ์ง“์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•ด ๋‹ค์‹œ ๋ณด๊ณ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์˜ˆ, ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค! ๋น ๋ฅธ ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค(์•„์ง๋„ ์™œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์ ์–ด๋„ ์ง€๊ธˆ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!).

#10915 ์ฝ”๋“œ ๊ฐœํŽธ ํ™๋ณด ๋งํฌ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, Django์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ(์ •ํ™•ํ•œ ๋™์ผํ•œ ์˜ค๋ฅ˜๋กœ ๊ฒฝ๊ณ )์— ์ง๋ฉดํ•˜๊ณ  ๋ชจ๋“  ์žฌ์„ค์น˜, ์บ์‹œ ์ง€์šฐ๊ธฐ(pip)๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์•„์„ธ์š”?
๊ฐ์‚ฌ!

@amehrdad88 ์ด๊ฒƒ์€ Django์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ Python์„ ์„ค์น˜ํ•œ ๋ฐฉ๋ฒ•๊ณผ NumPy๋ฅผ ์„ค์น˜ํ•œ ๋ฐฉ๋ฒ•๊ณผ NumPy์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. ํŠธ๋ ˆ์ด์Šค๋ฐฑ์„ ๋ณด๊ฑฐ๋‚˜ numpy.__file__ ๊ฒ€์‚ฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ(์˜ˆ: ๋™์ผํ•œ virtualenv / conda env์˜ ๋ชจ๋“  ๊ฒƒ)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@amehrdad88 ์ด๊ฒƒ์€ Django์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ Python์„ ์„ค์น˜ํ•œ ๋ฐฉ๋ฒ•๊ณผ NumPy๋ฅผ ์„ค์น˜ํ•œ ๋ฐฉ๋ฒ•๊ณผ NumPy์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. ํŠธ๋ ˆ์ด์Šค๋ฐฑ์„ ๋ณด๊ฑฐ๋‚˜ numpy.__file__ ๊ฒ€์‚ฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ(์˜ˆ: ๋™์ผํ•œ virtualenv / conda env์˜ ๋ชจ๋“  ๊ฒƒ)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

Ok ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ Python ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•œ ๋‹ค์Œ, virtualenv ๋ฐ pip์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

@rgommers ๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๊ณ  ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— numpy์™€ tensorflow๋งŒ์œผ๋กœ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์„œํ”Œ๋กœ ์ž‘์—… ๊ฐ€์ ธ์˜ค๊ธฐ. ๊ทธ๋Ÿฐ ๋‹ค์Œ requirements.txt ํŒŒ์ผ์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€(pip ํฌํ•จ)๋ฅผ ์„ค์น˜ํ•˜๋ฉด tensorflow๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋กœ๋“œ๋˜๋Š” ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์— numpy์™€ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? tensorflow๋งŒ ๊ฐ€์ ธ์™€๋„ ์ด ํŒจํ‚ค์ง€๊ฐ€ ๋กœ๋“œ๋˜๋‚˜์š”?

์ฐธ๊ณ : "FutureWarning: float ์—์„œ np.floating ๋กœ issubdtype์˜ ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜ ๋ณ€ํ™˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ h5py๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

@amehrdad88 ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์„ ์ •ํ™•ํžˆ ๋ฌธ์„œํ™”ํ•˜๊ณ  tensorflow๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๊ฐ ๋‹จ๊ณ„ ํ›„์— tensorflow๋ฅผ ๊ฐ€์ ธ์˜ค์‹ญ์‹œ์˜ค. ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ์•„๋‹ˆ๋ผ NumPy์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ๋ฌธ์„œ๋ฅผ ์ถœ๋ ฅ๊ณผ ํ•จ๊ป˜ ์ฒจ๋ถ€ํ•˜์‹ญ์‹œ์˜ค.

๋กœ๋“œ๋˜๋Š” ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์— numpy์™€ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? tensorflow๋งŒ ๊ฐ€์ ธ์™€๋„ ์ด ํŒจํ‚ค์ง€๊ฐ€ ๋กœ๋“œ๋˜๋‚˜์š”?

์•„๋‹ˆ์š”, ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ requirements.txt ๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ๋“  numpy๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” pip ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜๋Š” ์–ด๋”˜๊ฐ€์— PYTHONPATH์— ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š”. ํŒจํ‚ค์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๊ณ  ๊ฐ€์ ธ์˜ค๋ฉด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ํŒจํ‚ค์ง€์™€ ๊นจ๋—ํ•œ virtualenv ์™ธ๋ถ€์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CircleCI์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•  ๋•Œ ์ด ๋™์ž‘์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์…ธ์—์„œ:

Python 2.7.14 (default, Sep 18 2017, 00:00:00)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
>>> np.__file__
'/usr/local/lib/python2.7/dist-packages/numpy/__init__.pyc'
>>> pd.__file__
'/usr/local/lib/python2.7/dist-packages/pandas/__init__.pyc'

์ด ๋นŒ๋“œ๋Š” 4์ผ ์ „์—๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์ง€๋งŒ ์ง€๊ธˆ์€ requirements.txt๊ฐ€ ์ „ํ˜€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” numpy 1.14.3๊ณผ pandas 0.20.3์„ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

ํ›„์† ์กฐ์น˜๋กœ pip install numpy๋ฅผ ๋จผ์ €(๋ณ„๋„) ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ pandas๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค...

CircleCI์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•  ๋•Œ ์ด ๋™์ž‘์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์…ธ์—์„œ:

Python 2.7.14 (default, Sep 18 2017, 00:00:00)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
ImportError: No module named _multiarray_umath
>>> np.__file__
'/usr/local/lib/python2.7/dist-packages/numpy/__init__.pyc'
>>> pd.__file__
'/usr/local/lib/python2.7/dist-packages/pandas/__init__.pyc'

์ด ๋นŒ๋“œ๋Š” 4์ผ ์ „์—๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์ง€๋งŒ ์ง€๊ธˆ์€ requirements.txt๊ฐ€ ์ „ํ˜€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” numpy 1.14.3๊ณผ pandas 0.20.3์„ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด 3 ์ผ ์ „์— ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ ˆ์ธ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ฐ‘์ž๊ธฐ ์ด ๊ฐ€์ ธ์˜ค๊ธฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

c-extension ๋ชจ๋“ˆ _multiarray_umath ์€ numpy 1.16.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด๋ฉฐ ์–ด๋”˜๊ฐ€์— ๋ฒ„์ „ ๋˜๋Š” ์˜ˆ์ƒ ๋ฒ„์ „์ด ํ˜ผํ•ฉ๋˜์–ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. numpy์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ์ž‘์—…์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋Š” ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

์ ˆ์ธ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

with open(fl[0], 'rb') as f:
    pickle.load(f)
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-24-571299641ef6> in <module>
      1 with open(fl[0], 'rb') as f:
----> 2     pickle.load(f)

ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์žฌ๊ฐœ๋˜์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ด€๋ จ

pd.read_pickle ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋„ ์ด๊ฒƒ์„ ์–ป์Šต๋‹ˆ๋‹ค.


์ „์ฒด ์—ญ์ถ”์ 

pd.read_pickle('/path/to/a/dataframe/foo.df')
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    211 
--> 212         return up.load()
    213     except:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_pickle(path, compression)
    176     try:
--> 177         return try_read(path)
    178     except:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    211 
--> 212         return up.load()
    213     except:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    165                 # We want to silencce any warnings about, e.g. moved modules.
--> 166                 return read_wrapper(lambda f: pkl.load(f))
    167         except Exception:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    148         try:
--> 149             return func(f)
    150         finally:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    170                 return read_wrapper(
--> 171                     lambda f: pc.load(f, encoding=encoding, compat=False))
    172             # compat pickle

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    211 
--> 212         return up.load()
    213     except:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:

ImportError: No module named 'numpy.core._multiarray_umath'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-44-2ad6813d006d> in <module>()
----> 1 pd.read_pickle('/Users/riley/main/build_0003/reps/lobsang/konami-api/src/app/v0/foo.df')

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_pickle(path, compression)
    178     except:
    179         if PY3:
--> 180             return try_read(path, encoding='latin1')
    181         raise
    182 

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in try_read(path, encoding)
    173             except:
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:
    177         return try_read(path)

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in read_wrapper(func)
    147                             is_text=False)
    148         try:
--> 149             return func(f)
    150         finally:
    151             for _f in fh:

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/io/pickle.py in <lambda>(f)
    173             except:
    174                 return read_wrapper(
--> 175                     lambda f: pc.load(f, encoding=encoding, compat=True))
    176     try:
    177         return try_read(path)

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in load(fh, encoding, compat, is_verbose)
    210         up.is_verbose = is_verbose
    211 
--> 212         return up.load()
    213     except:
    214         raise

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load(self)
   1041                     raise EOFError
   1042                 assert isinstance(key, bytes_types)
-> 1043                 dispatch[key[0]](self)
   1044         except _Stop as stopinst:
   1045             return stopinst.value

~/anaconda3/envs/py35/lib/python3.5/pickle.py in load_stack_global(self)
   1349         if type(name) is not str or type(module) is not str:
   1350             raise UnpicklingError("STACK_GLOBAL requires str")
-> 1351         self.append(self.find_class(module, name))
   1352     dispatch[STACK_GLOBAL[0]] = load_stack_global
   1353 

~/anaconda3/envs/py35/lib/python3.5/site-packages/pandas/compat/pickle_compat.py in find_class(self, module, name)
    133             key = (module, name)
    134             module, name = _class_locations_map.get(key, key)
--> 135             return super(Unpickler, self).find_class(module, name)
    136 
    137 else:

~/anaconda3/envs/py35/lib/python3.5/pickle.py in find_class(self, module, name)
   1390             elif module in _compat_pickle.IMPORT_MAPPING:
   1391                 module = _compat_pickle.IMPORT_MAPPING[module]
-> 1392         __import__(module, level=0)
   1393         if self.proto >= 4:
   1394             return _getattribute(sys.modules[module], name)[0]

ImportError: No module named 'numpy.core._multiarray_umath'

@rileypeterson ์ด๊ฒƒ์€ ๋ฌธ์ œ #12837์˜ ์ค‘๋ณต์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  1.16.0์˜ ์‚ฐ์„ธ ๋ฌธ์ œ๋Š” #12842์— ์˜ํ•ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค(#12869์—์„œ 1.16.1๋กœ ๋ฐฑํฌํŠธ๋จ). 1.16.1 ๋ฆด๋ฆฌ์Šค๋กœ ํ•ด๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

pip install --upgrade numpy

์ด๊ฒƒ์€ ์ด์ „ ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜๊ณ  ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. numpy.core._multiarray_umath๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์นจ๋‚ด ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค๏ผŒnumpy ๋ฒ„์ „์ด ๋„ˆ๋ฌด ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. numpy๋ฅผ 1.16.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค.

numpy๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ

pip install -U numpy ์—…๊ทธ๋ ˆ์ด๋“œ numpy

์ด๊ฒƒ์€ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค :)
pip install --upgrade numpy

์•„๋‚˜์ฝ˜๋‹ค ํ”„๋กฌํ”„ํŠธ์—์„œ:
pip uninstall numpy

๊ทธ ๋‹ค์Œ์—:
pip install numpy

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š”,
NumPy(์˜ˆ: TensorFlow)๊ฐ€ ํ•„์š”ํ•œ ๋งŽ์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žˆ๋Š”๋ฐ numpy ์ชฝ์˜ ImportError ๋•Œ๋ฌธ์— ์„ค์น˜ํ•˜๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ pip ์„ค์น˜์™€ ์†Œ์Šค์—์„œ ๋นŒ๋“œ ๋ชจ๋‘์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ ์˜ˆ์‹œ:
numpy๋ฅผ np๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
์—๋Ÿฌ ๋ฉ”์‹œ์ง€:
ImportError: numpy.core._multiarray_umath ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ

Numpy/Python ๋ฒ„์ „ ์ •๋ณด:
'1.16.0.dev0+cdbf35b'

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๋‹ค.
Theano, tensorflow ๋ฐ keras๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ์ˆœ์„œ๋กœ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํ…Œ์•„๋…ธ
  2. ํ…์„œํ”Œ๋กœ
  3. ์ผ€๋ผ์Šค

numpy๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ

๋‚ด๊ฐ€ ๋ฐ๋ ค๊ฐˆ๊ฒŒ! ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์˜์–ด๋กœ ์งˆ๋ฌธํ•˜๋ฉด ์ค‘๊ตญ์–ด๋กœ ๋Œ€๋‹ตํ•ฉ๋‹ˆ๋‹ค!

@datianshi21 ๊ณต์‹ ์–ธ์–ด๋Š” ์˜์–ด์ž…๋‹ˆ๋‹ค. Google ๋ฒˆ์—ญ์€ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์ด "Numpy ์ œ๊ฑฐ ๋ฐ ์—…๋ฐ์ดํŠธ
๊ทธ๋ƒฅ ๋‹น์‹ ์„ ์„ฌ๊ธฐ์‹ญ์‹œ์˜ค! ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์˜์–ด๋กœ ์งˆ๋ฌธํ•˜๋ฉด ์ค‘๊ตญ์–ด๋กœ ๋Œ€๋‹ตํ•ฉ๋‹ˆ๋‹ค!"
๋‹น์‹ ์€ ๋ด‡์ž…๋‹ˆ๊นŒ?

pip install --upgrade numpy --user ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

mxnet-mkl 1.4.0 has requirement numpy<1.15.0,>=1.8.2, but you'll have numpy 1.16.3 which is incompatible.

mxnet-mkl ์ œ๊ฑฐ ํ›„ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒฌ๋”๋ฅผ ์„ค์น˜ํ–ˆ์„ ๋•Œ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

https://github.com/numpy/numpy/issues/11871#issuecomment -487995082

Pandas๋Š” numpy๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰