[PYTHON] ValueError : numpy.dtype의 크기가 잘못되었습니다. 다시 컴파일 해보십시오.
PYTHONValueError : numpy.dtype의 크기가 잘못되었습니다. 다시 컴파일 해보십시오.
방금 파이썬 2.7에 pandas와 statsodels 패키지를 설치했습니다. "pdf로 가져 오기"를 시도하면이 오류 메시지가 나타납니다. 누구든지 도와 줄 수 있습니까? 감사!!!
numpy.dtype has the wrong size, try recompiling
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\formula\__init__.py",
line 4, in <module>
from formulatools import handle_formula_data
File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\formula\formulatools.p
y", line 1, in <module>
import statsmodels.tools.data as data_util
File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\tools\__init__.py", li
ne 1, in <module>
from tools import add_constant, categorical
File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\tools\tools.py", line
14, in <module>
from pandas import DataFrame
File "C:\analytics\ext\python27\lib\site-packages\pandas\__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
File "numpy.pxd", line 157, in init pandas.tslib (pandas\tslib.c:49133)
ValueError: numpy.dtype has the wrong size, try recompiling
해결법
-
==============================
1.(내 의견에 약간의 확장)
(내 의견에 약간의 확장)
Numpy 개발자는 일반적으로 ABI (backward compatible compatible binary) 인터페이스를 유지하는 정책을 따릅니다. 그러나 ABI는 앞으로 호환되지 않습니다.
그것이 의미하는 것 :
컴파일 된 확장에서 numpy를 사용하는 패키지는 numpy의 특정 버전에 대해 컴파일됩니다. 이후 버전의 numpy는 패키지의 컴파일 된 확장과 호환됩니다 (예외는 아래 참조). 다른 패키지의 배포자는 새로운 버전의 numpy에 대해 패키지를 다시 컴파일 할 필요가 없으며 사용자가 numpy의 새로운 버전으로 업데이트 할 때이 다른 패키지를 업데이트 할 필요가 없습니다.
그러나 이것은 다른 방향으로 나아 가지 않습니다. 패키지가 특정 numpy 버전, 예를 들어 1.7로 컴파일 된 경우 해당 패키지의 바이너리가 이전의 numpy 버전 (1.6)과 작동 할 것이라는 보장이 없으며, 그렇지 않은 경우는 매우 자주 또는 대부분입니다.
pandas 및 statsmodels와 같은 최신 버전의 numpy에 대해 컴파일 된 바이너리 배포판은 이전 버전의 numpy가 설치되어 있으면 작동하지 않습니다. 일부 패키지 (예 : matplotlib)가 올바르게 기억되면 지원되는 가장 오래된 numpy 버전에 대한 확장을 컴파일합니다. 이 경우 numpy의 이전 버전 또는 이전 버전이 동일한 사용자는 해당 바이너리를 사용할 수 있습니다.
질문의 오류 메시지는 이진 비 호환성의 일반적인 결과입니다.
해결 방법은 numpy를 판다 또는 통계 모델이 컴파일 된 버전 이상으로 업데이트하거나 이미 설치된 numpy의 이전 버전에 대해 팬더 및 통계 모델을 다시 컴파일하여 이진 호환 버전을 얻는 것입니다.
ABI 역 호환성을 깨고 :
때때로 numpy에서의 개선이나 리팩토링은 ABI 역 호환성을 깬다. 이것은 numpy 1.4.0에서 (실수로) 발생했습니다. 결과적으로 numpy를 1.4.0으로 업데이트 한 사용자는 이전 버전의 numpy에 대해 컴파일 된 다른 모든 컴파일 된 패키지와 이진 비 호환성을 보입니다. 이를 위해서는 numpy를 사용하는 바이너리 확장이있는 모든 패키지를 ABI 호환되지 않는 버전에서 작동하도록 다시 컴파일해야합니다.
-
==============================
2.나를 위해 (Mac OS X Mavericks, Python 2.7)
나를 위해 (Mac OS X Mavericks, Python 2.7)
easy_install --upgrade numpy
도와 줬어. 이 후에는 최신 패키지 판다, scikit-learn, e.t.c를 설치할 수 있습니다. 사용하여 pip :
pip install pandas
-
==============================
3.간단한 버전이 구형이거나 불일치로 발견되어 다음과 같이 수정되었습니다.
간단한 버전이 구형이거나 불일치로 발견되어 다음과 같이 수정되었습니다.
pip install --upgrade numpy pip install --upgrade scipy pip install --upgrade pandas
또는 하나의 라이너로 작업 할 수도 있습니다.
pip install --upgrade numpy scipy pandas
-
==============================
4.다른 라이브러리와 비슷한 오류가있어서 시스템에 numpy의 여러 버전이 설치되어 있음을 알게되었습니다. 나를위한 해결책은 내 PYTHONPATH를 편집하고 numpy의 최신 버전이 들어있는 사이트 패키지를 첫 번째 위치에 두는 것이 었습니다.
다른 라이브러리와 비슷한 오류가있어서 시스템에 numpy의 여러 버전이 설치되어 있음을 알게되었습니다. 나를위한 해결책은 내 PYTHONPATH를 편집하고 numpy의 최신 버전이 들어있는 사이트 패키지를 첫 번째 위치에 두는 것이 었습니다.
-
==============================
5.여기에 나와 같이, 나를 위해서만 sudo pip 설치 판다 == 0.13.1 근무
여기에 나와 같이, 나를 위해서만 sudo pip 설치 판다 == 0.13.1 근무
-
==============================
6.pandas를 사용하여 MYSQL에 액세스 할 때도이 오류가 발생합니다. 이 오류 메시지는 바이너리 호환 문제를 나타내며에 의해 해결 될 수 있습니다. 팬더와 numpy 패키지의 최신 버전을 사용합니다. 다음은이 문제를 해결하기위한 나의 단계입니다. 내 Ubuntu 12.04에서 잘 작동합니다.
pandas를 사용하여 MYSQL에 액세스 할 때도이 오류가 발생합니다. 이 오류 메시지는 바이너리 호환 문제를 나타내며에 의해 해결 될 수 있습니다. 팬더와 numpy 패키지의 최신 버전을 사용합니다. 다음은이 문제를 해결하기위한 나의 단계입니다. 내 Ubuntu 12.04에서 잘 작동합니다.
cd /tmp/ wget https://pypi.python.org/packages/source/p/pandas/pandas-0.12.0.tar.gz tar xzvf pandas-0.12.0.tar.gz cd pandas-0.12.0 easy_install --upgrade numpy
-
==============================
7.필자의 경우, 나는 pandas-0.10.0.win-amd64-py2.7을 설치 했었지만 판다의 최신 버전에서 버그가 수정되었는지 확인하고 있었다. 그래서 easy_install -U를 사용하여 업그레이드를 강제했지만 numpy 등의 비 호환성으로 인해 위의 오류가 발생했습니다.
필자의 경우, 나는 pandas-0.10.0.win-amd64-py2.7을 설치 했었지만 판다의 최신 버전에서 버그가 수정되었는지 확인하고 있었다. 그래서 easy_install -U를 사용하여 업그레이드를 강제했지만 numpy 등의 비 호환성으로 인해 위의 오류가 발생했습니다.
import pandas
문제를 해결하기 위해 방금 pandas-0.10.0.win-amd64-py2.7 바이너리를 다시 설치했는데 모든 것이 작동합니다. 나는 (확실하지는 않지만) 도움이되었을 수도있는이 답변 (pip 사용을 제안 함)을 보지 못했습니다. easy_install을 사용하여 특정 버전을 설치하십시오.
또한 이것은 왜 내가 virtualenv를 사용해야하는지 강조합니다 (나는 그렇지 않았습니다).
-
==============================
8.필자 (Mac OS X Mavericks)는 python2.6 버전을 설치했다.
필자 (Mac OS X Mavericks)는 python2.6 버전을 설치했다.
sudo port install py26-scikit-learn
다음을 실행하십시오.
python2.6 myscript.py
-
==============================
9.Webfaction에서 내가 해결 한 문제는 오래된 멍청한 도서관 (1.5)이었는데 나의 신선한 것과 충돌했다.
Webfaction에서 내가 해결 한 문제는 오래된 멍청한 도서관 (1.5)이었는데 나의 신선한 것과 충돌했다.
.virtualenv에 설치.
가상 환경에서 pandas를 pip 설치 한 후에 문제가 해결되었습니다. 아이디어는 https://github.com/pydata/pandas/issues/3711에서 감사합니다. cpcloud!
-
==============================
10.방금이 'ValueError'문제를 만났습니다. 확실히 numpy 패키지에는 문제가 있습니다.
방금이 'ValueError'문제를 만났습니다. 확실히 numpy 패키지에는 문제가 있습니다.
하지만 설치를 업그레이드하려고 할 때 --upgrade numpy가 실패 했으므로 최신 numpy.zip 파일을 제거하고 다운로드합니다. 그런 다음 수동으로 압축을 풀고 python setup.py를 설치하십시오.
운 좋게, 그것은 작동한다!
-
==============================
11.@ user333700처럼 라이브러리의 필수 버전이 서로 만나지 않을 수도 있습니다. 하나의 라이브러리를 다른 라이브러리의 종속 라이브러리로 사용합니다. 그런 다음 종속성으로 이미 설치되었다는 것을 모른 채 특정 라이브러리가 필요하고 하나의 버전 만 설치하면됩니다. 그런 방법으로 의존성이 엉망이 될 수 있습니다.
@ user333700처럼 라이브러리의 필수 버전이 서로 만나지 않을 수도 있습니다. 하나의 라이브러리를 다른 라이브러리의 종속 라이브러리로 사용합니다. 그런 다음 종속성으로 이미 설치되었다는 것을 모른 채 특정 라이브러리가 필요하고 하나의 버전 만 설치하면됩니다. 그런 방법으로 의존성이 엉망이 될 수 있습니다.
나는 그런 경우에 살았고 해결책을 찾았다. 이것을 발견 : https://stackoverflow.com/a/12975518/1694344
egg-info 파일과 numpy라는 폴더 이름에 대해 두 가지 버전이 있습니다.
drwxr-xr-x. 19 root root 4096 Sep 25 15:00 numpy drwxr-xr-x. 2 root root 4096 Sep 22 11:25 numpy-1.13.1.dist-info -rw-r--r--. 1 root root 1630 Nov 20 2015 numpy-1.7.1-py2.7.egg-info
나는 그들을 모두 제거하고 pip로 numpy를 다시 설치했습니다.
-
==============================
12.특정 NumPy 버전을 유지하려는 경우 여기에 언급 된 업그레이드 옵션이 작동하지 않습니다. 필자에게 발생한 예가 ArcGIS와 함께 사전 설치된 Python 배포판이었다. ArcPy가 ArcGIS 10.5.1에서 작동하려면 NumPy 1.9.3이 설치된 Python 2.7.12가 필요하며 다른 NumPy 버전은 ArcPy 기능에 문제가 발생할 수 있습니다.
특정 NumPy 버전을 유지하려는 경우 여기에 언급 된 업그레이드 옵션이 작동하지 않습니다. 필자에게 발생한 예가 ArcGIS와 함께 사전 설치된 Python 배포판이었다. ArcPy가 ArcGIS 10.5.1에서 작동하려면 NumPy 1.9.3이 설치된 Python 2.7.12가 필요하며 다른 NumPy 버전은 ArcPy 기능에 문제가 발생할 수 있습니다.
이 경우 할 수있는 일은 ArcGIS에있는 이전 버전의 NumPy와 호환되는 문제가있는 타사 라이브러리의 이전 버전을 설치하는 것입니다.
예를 들어 scikit-learn 0.19.1은 NumPy 1.9.3에서는 작동하지 않으며 언급 한 것과 동일한 오류가 발생합니다. 그러나 scikit-learn 0.15는 잘 작동합니다. 다른 버전을 테스트하여 작동하는 버전을 찾을 수 있습니다. pip를 통해 버전 번호를 언급하십시오.
python -m pip install scikit-learn==0.15
from https://stackoverflow.com/questions/17709641/valueerror-numpy-dtype-has-the-wrong-size-try-recompiling by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서 '>> 0이 참인 이유는 무엇입니까? (0) | 2018.10.04 |
---|---|
[PYTHON] 파이썬 문자열 리터럴에서 백 슬래시 인용 (0) | 2018.10.04 |
[PYTHON] 파이썬의 다중 핑 스크립트 (0) | 2018.10.04 |
[PYTHON] 비표준 위치에 SSL을 지원하는 Python 구현 (0) | 2018.10.04 |
[PYTHON] 코드에서 nltk 데이터 디렉토리를 설정하는 방법은 무엇입니까? (0) | 2018.10.04 |