복붙노트

[PYTHON] ValueError : numpy.dtype의 크기가 잘못되었습니다. 다시 컴파일 해보십시오.

PYTHON

ValueError : 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. ==============================

    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. ==============================

    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. ==============================

    3.간단한 버전이 구형이거나 불일치로 발견되어 다음과 같이 수정되었습니다.

    간단한 버전이 구형이거나 불일치로 발견되어 다음과 같이 수정되었습니다.

    pip install --upgrade numpy
    pip install --upgrade scipy
    pip install --upgrade pandas
    

    또는 하나의 라이너로 작업 할 수도 있습니다.

    pip install --upgrade numpy scipy pandas
    
  4. ==============================

    4.다른 라이브러리와 비슷한 오류가있어서 시스템에 numpy의 여러 버전이 설치되어 있음을 알게되었습니다. 나를위한 해결책은 내 PYTHONPATH를 편집하고 numpy의 최신 버전이 들어있는 사이트 패키지를 첫 번째 위치에 두는 것이 었습니다.

    다른 라이브러리와 비슷한 오류가있어서 시스템에 numpy의 여러 버전이 설치되어 있음을 알게되었습니다. 나를위한 해결책은 내 PYTHONPATH를 편집하고 numpy의 최신 버전이 들어있는 사이트 패키지를 첫 번째 위치에 두는 것이 었습니다.

  5. ==============================

    5.여기에 나와 같이, 나를 위해서만 sudo pip 설치 판다 == 0.13.1 근무

    여기에 나와 같이, 나를 위해서만 sudo pip 설치 판다 == 0.13.1 근무

  6. ==============================

    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. ==============================

    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. ==============================

    8.필자 (Mac OS X Mavericks)는 python2.6 버전을 설치했다.

    필자 (Mac OS X Mavericks)는 python2.6 버전을 설치했다.

    sudo port install py26-scikit-learn
    

    다음을 실행하십시오.

    python2.6 myscript.py
    
  9. ==============================

    9.Webfaction에서 내가 해결 한 문제는 오래된 멍청한 도서관 (1.5)이었는데 나의 신선한 것과 충돌했다.

    Webfaction에서 내가 해결 한 문제는 오래된 멍청한 도서관 (1.5)이었는데 나의 신선한 것과 충돌했다.

    .virtualenv에 설치.

    가상 환경에서 pandas를 pip 설치 한 후에 문제가 해결되었습니다. 아이디어는 https://github.com/pydata/pandas/issues/3711에서 감사합니다. cpcloud!

  10. ==============================

    10.방금이 'ValueError'문제를 만났습니다. 확실히 numpy 패키지에는 문제가 있습니다.

    방금이 'ValueError'문제를 만났습니다. 확실히 numpy 패키지에는 문제가 있습니다.

    하지만 설치를 업그레이드하려고 할 때 --upgrade numpy가 실패 했으므로 최신 numpy.zip 파일을 제거하고 다운로드합니다. 그런 다음 수동으로 압축을 풀고 python setup.py를 설치하십시오.

    운 좋게, 그것은 작동한다!

  11. ==============================

    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. ==============================

    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
    
  13. from https://stackoverflow.com/questions/17709641/valueerror-numpy-dtype-has-the-wrong-size-try-recompiling by cc-by-sa and MIT license