[英]Import pyaudio doesn't work - Symbol not found: _PaMacCore_SetupChannelMap on mac (Big Sur M1 Apple Silicon)
[英]Python import MySQLdb on MacOS M1 doesn't work
我安裝了 Python 3.8.8
、 mysql
和mysql-client
。 我還使用pip
安裝了mysql-connector-python==8.0.26
和mysqlclient==2.1.0
庫。
但是線
python -c“導入MySQLdb”
返回此錯誤:
> Traceback (most recent call last):
File "/Users/louisgabilly/anaconda3/envs/venv/lib/python3.8/site-packages/MySQLdb/__init__.py", line 18, in <module>
from . import _mysql
ImportError: dlopen(/Users/louisgabilly/anaconda3/envs/venv/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so, 2): Symbol not found: _mysql_affected_rows
Referenced from: /Users/louisgabilly/anaconda3/envs/venv/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so
Expected in: flat namespace
in /Users/louisgabilly/anaconda3/envs/venv/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so
>
>During handling of the above exception, another exception occurred:
>
>Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/louisgabilly/anaconda3/envs/venv/lib/python3.8/site-packages/MySQLdb/__init__.py", line 24, in <module>
version_info, _mysql.version_info, _mysql.__file__
NameError: name '_mysql' is not defined
我相信這個錯誤是由於 MacOS M1 造成的。
在https://github.com/PyMySQL/mysqlclient/issues/496中有一個很好的討論,這個問題的出現是 Python 的架構(ARM64 或 Intel)與 mysqlclient 的架構不一致。 因此,請檢查您使用的是哪個 python(因為您可能會使用一些您不打算使用的 python)以及它們之間的一致性
即使您已經安裝了mysqlclient
,您也需要安裝 Oracle 本機客戶端庫才能使其工作。 您可以使用 brew 安裝客戶端。
brew install mysql-client
正如這個答案所說 MySQLdb 不支持 Python 3 你應該導入
import mysql.connector
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.