簡體   English   中英

Python3.9 malloc:無法分配區域錯誤3

[英]Python3.9 malloc: can't allocate region error 3

我正在使用 Python3.9 並且我開始編寫一個簡單的腳本來塑造一些數據,我只寫了一行就測試了它,我收到了這個錯誤:

 $ 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

這是 Python 腳本:

import pandas as pd, numpy as np

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

print(df)

我正在閱讀的文件是:

Hello
Hello
Hello

我在 MacO 上。

我的 Python 安裝的詳細信息是:

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

我使用pip install wheelpip install pandas

我也有空閑內存,我重新安裝了 Python,但仍然遇到此錯誤。

我是 Python 初學者,我真的不明白錯誤信息,我嘗試搜索但沒有任何效果......

關於我做錯了什么的任何想法?

非常感謝

截至目前,brew 在 MacOS BIG SUR 上還不穩定。 我升級到 Python 3.9 並在 numpy mem 分配方面遇到了同樣的問題,所以我像這樣回滾了:

brew link --overwrite python@3.8
  Linking /usr/local/Cellar/python@3.8/3.8.6_2... 25 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.zshrc

這樣我就回到了 Python 3.8.6,它工作正常

當我使用 brew 安裝 python3.8/3.9 時,我遇到了同樣的問題。 我通過刪除 python 的 brew 版本並從python.org/mac-osx安裝 python 解決了這個問題

我也遇到了讓numpy在我的機器上工作的問題。

語境

我的設置是使用oh-my-zsh擴展運行 zsh 命令行的 MacOS Big Sur。 自從我從 Catalina 升級到 Big Sur 以來,我在導入numpy時遇到了問題。

我的機器上安裝了幾個版本的 Python3:

  • Python3.9(釀造)
  • Python3.8(釀造)
  • Python3.8(我認為來自python.org

使用python3別名指向 Python 的brew版本之一,至少根據執行命令which python3的輸出。 我相信這些brew版本是作為另一個程序的依賴項自動安裝的。

由於我安裝了多個版本的 Python,我相信我有多個路徑指向同一個python / python3別名。 為了解決這個問題,我首先刪除了任何舊的 Python 路徑,這些路徑在我安裝新版本的 Python 時可能會自動創建(通過 brew 或官方發布)。

我的步驟

我采取了以下步驟來解決我假設的問題。 如果您的問題聽起來與我的相似,這可能會有所幫助!

A 部分:清除.bashrc.zshrc

  1. 在命令行中輸入: vi ~/.bashrc並刪除包含export PATH=/usr/...<some more directories>...python:%PATH
  2. 在命令行中輸入: vi ~/.zshrc並按照與之前相同的過程進行操作。

B 部分:刪除brew安裝的 Python 版本

接下來,我刪除了brew安裝的所有python版本。 由於我同時擁有 Python3.9 和 Python3.8,我使用以下命令通過brew卸載它們:

  1. brew uninstall python@3.9
  2. brew uninstall python@3.8

C 部分:安裝新版本的 Python

一旦卸載了 Python 的brew版本,運行命令which python3現在指向我從python.org安裝的 Python3.8 版本。 由於我想運行不同版本的 Python,我轉到了Mac OS Xpython 下載頁面並下載了Mac OS X 64-bit installer

這樣做並重新啟動我的終端后,運行which python3命令現在指向我安裝的最新版本的 Python。

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

您還應該運行which pip3以確認pip3別名為用於 Python3.9 的正確版本的 pip,如果通過安裝程序安裝 Python,則應該是這種情況。

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

D 部分:安裝numpy

設置python3pip3后,您可以運行pip3 install numpy ,這應該為 Python3.9 安裝新版本的numpy 然后,在.py文件中運行numpy的 import 語句(例如import numpy as np )應該沒有問題。

結論

我確信這不是處理不同版本 Python 的最佳方式,但它對我有用,我希望它也對你有用。 總的來說,這可能是一個很好的解決方法,直到有人想出更好的方法或者numpy在未來的更新中修復這個問題。

我聽說使用pyenvpipenv是處理多個環境和 Python 版本的好方法。 這可能對你有幫助。 祝你好運!

  • 編輯:在安裝numpy后添加了一個關於pip3別名的部分和一個關於結果的部分。
  • 編輯:添加了有關我機器上的多個 Python 版本可能源自何處的信息。

我剛剛在使用asdf安裝的 Python 3.9.2 上遇到了同樣的問題。

我注意到您安裝了 1.19.2 版 numpy,我安裝了 1.19.4 並升級到 numpy 1.20.1 為我解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM