web-dev-qa-db-fra.com

Python3.9 Malloc: Impossible d'allouer une erreur de région 3

J'utilise Python3.9 et j'ai commencé à écrire un script simple pour façonner certaines données, je l'ai testée après avoir écrit une seule ligne et je reçois cette erreur:

 $ Python3.9 Shape_Response.py 
Python(2857,0x1061635c0) malloc: can't allocate region
*** mach_vm_map(size=18446744072478715904) failed (error code=3)
Python(2857,0x1061635c0) malloc: *** set a breakpoint in malloc_error_break to debug
init_dgelsd failed init
Traceback (most recent call last):
  File "/Users/dominik/Desktop/Google Analytics API/Shape_Response.py", line 1, in <module>
    import pandas as pd, numpy as np
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pandas/__init__.py", line 11, in <module>
    __import__(dependency)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/numpy/__init__.py", line 286, in <module>
    raise RuntimeError(msg)
RuntimeError: Polyfit sanity test emitted a warning, most likely due to using a buggy Accelerate backend. If you compiled yourself, see site.cfg.example for information. Otherwise report this to the vendor that provided NumPy.
RankWarning: Polyfit may be poorly conditioned

C'est le Python script:

import pandas as pd, numpy as np

df = pd.read_csv('test.txt', delimiter = "\n", header=None)

print(df)

Le fichier que je lis est:

Hello
Hello
Hello

Je suis sur MacOS.

Détails de mon Python Installation sont les suivants:

dominik at Dominiks-MacBook-Pro in Google Analytics API
$ which python
/usr/bin/python

dominik at Dominiks-MacBook-Pro in Google Analytics API
$ python --version
>>> Python 3.9.0

dominik at Dominiks-MacBook-Pro in Google Analytics API
$ pip --version
>>> pip 20.2.4 from /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip (python 3.9)

dominik at Dominiks-MacBook-Pro in Google Analytics API
$ pip list
>>> Package         Version
>>> --------------- -------
>>> numpy           1.19.2
>>> pandas          1.1.3
>>> pip             20.2.4
>>> python-dateutil 2.8.1
>>> pytz            2020.1
>>> setuptools      49.2.1
>>> six             1.15.0
>>> wheel           0.35.1

J'ai installé pandas en utilisant pip install wheel et pip install pandas.

J'ai aussi une mémoire gratuite, j'ai réinstallé mon Python et je suis toujours dans cette erreur.

Je suis un Python débutant et je ne comprends vraiment pas le message d'erreur, j'ai essayé de chercher mais rien n'a fonctionné ...

Des idées de ce que je fais mal?

Merci beaucoup

5
Raymond_90

J'avais aussi des problèmes pour obtenir numpy pour travailler sur ma machine.

Le contexte

Ma configuration est MacOS Big Sur Exécuter la ligne de commande ZSH en utilisant le oh-my-zsh extension. J'avais des problèmes avec l'importation numpy depuis que je suis passé de Catalina à Big Sur.

J'ai eu quelques versions de Python3 installées sur ma machine:

  • Python3.9 (Brew)
  • Python3.8 (Brew)
  • Python3.8 (de - python.org Je pense)

avec le python3 alias pointant vers l'une des versions brew de Python, au moins en fonction de la sortie de l'exécution de la commande which python3. Je crois que ces versions brew ont été installées automatiquement en tant que dépendances pour un autre programme.

Comme j'avais plusieurs versions de Python installé, je pense que j'avais plusieurs chemins pointant vers le même python/python3 alias. Pour résoudre ce problème, j'ai d'abord supprimé tout ancien Python chemins qui auraient pu être créé automatiquement chaque fois que j'ai installé une nouvelle version de Python (soit par exemple Libération).

Mes pas

J'ai pris les mesures suivantes pour résoudre mon problème supposé. Si votre problème semble semblable à celui de la mienne, cela peut être utile!

Partie A. Effacer .bashrc et .zshrc

  1. Tapez dans la ligne de commande: vi ~/.bashrc et supprimer tout ce qui contient quelque chose dans le sens de export PATH=/usr/...<some more directories>...python:%PATH.
  2. Tapez dans la ligne de commande: vi ~/.zshrc et suivre le même processus qu'auparavant.

Partie B. Suppression de brew - Versions installées de Python

Ensuite, j'ai supprimé toutes les versions de python qui ont été installés par brew. Depuis que j'avais à la fois Python3.9 et Python3.8, j'ai utilisé les commandes suivantes pour les désinstaller via brew:

  1. brew uninstall [email protected]
  2. brew uninstall [email protected]

Partie C. Installation d'une nouvelle version de Python

Une fois que les versions brew de Python étaient désinstallées, exécutez la commande which python3 Maintenant pointé vers la version Python3.8 que j'avais installée à partir de python.org . Puisque je voulais exécuter une version différente de Python, je suis allé à la page de téléchargements Python pour Mac OS X et téléchargée le installateur Mac OS X 64 bits .

Après avoir fait et redémarrer mon terminal, exécutez le which python3 Commande maintenant indiquée à la dernière version de Python que j'ai installé.

/Library/Frameworks/Python.framework/Versions/3.9/bin/python3

Vous devriez aussi courir which pip3 Pour confirmer que pip3 est aliasé à la version appropriée de PIP à utiliser pour Python3.9, qui devrait être le cas si vous installez Python via l'installateur.

/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3

Partie D. Installation numpy

Une fois python3 et pip3 sont configurés, vous pouvez exécuter pip3 install numpy, qui devrait installer une nouvelle version de numpy pour Python3.9. Ensuite, exécutez une déclaration d'importation pour numpy (tel que import numpy as np) à l'intérieur d'un .py Le fichier devrait fonctionner sans problème.

Conclusion

Je suis sûr que ce n'est pas la meilleure façon de gérer différentes versions de Python, mais cela a fonctionné pour moi et j'espère que cela fonctionne aussi pour vous. Dans l'ensemble, cela peut être une bonne solution de contournement pour le moment jusqu'à ce que quelqu'un déterminerait une meilleure façon ou si numpy la corrige dans une mise à jour future.

J'ai entendu dire que l'utilisation pyenv et pippenv sont de bonnes façons de traiter plusieurs environnements et versions de Python. Cela peut être utile pour vous. Bonne chance!

  • EDIT: Ajout d'une section sur pip3 aliasing et une section sur le résultat après l'installation numpy.
  • EDIT: Ajout d'informations sur l'emplacement des multiples versions de Python J'avées sur ma machine a pu provenir de.
1
lecheboludo