---
slug: "python3-symbol-not-found-in-flat-namespace-_mysql_affected_rows"
title: "Python の MySQLdb を使う時に symbol not found in flat namespace '_mysql_affected_rows'  が出た場合の対応"
description: "Python の MySQLdb を import すると `symbol not found in flat namespace '_mysql_affected_rows'` が出る問題と対処法。"
url: "https://www.ytyng.com/blog/python3-symbol-not-found-in-flat-namespace-_mysql_affected_rows"
publish_date: "2023-11-09T03:39:23Z"
created: "2023-11-09T03:39:23Z"
updated: "2026-05-11T13:03:57.557Z"
categories: ["Django", "Python"]
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20250503/5d3ab2b6eb504f0dabf659d1a4ef82d3.png.webp?width=768"
has_video: true
has_music: true
video_urls: ["https://media.ytyng.net/ytyng-blog/295/featured-video-1.mp4", "https://media.ytyng.net/ytyng-blog/295/featured-video-2.mp4", "https://media.ytyng.net/ytyng-blog/295/featured-video-3.mp4"]
music_urls: ["https://media.ytyng.net/ytyng-blog/295/featured-music-295-1.mp3", "https://media.ytyng.net/ytyng-blog/295/featured-music-295-4.mp3"]
lang: "ja"
---

# Python の MySQLdb を使う時に symbol not found in flat namespace '_mysql_affected_rows'  が出た場合の対応

Apple silicon の Python で MySQL を操作しようとして

```
ImportError: dlopen(/.../site-packages/MySQLdb/_mysql.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_mysql_affected_rows'
```

が出た。

[Macos M1 mysqlclient Symbol not found: _mysql_affected_rows ERROR · Issue #496 · PyMySQL/mysqlclient](https://github.com/PyMySQL/mysqlclient/issues/496#issuecomment-1614688099)

上記のコメントを参考にする。

私の環境では

```shell
% echo $MYSQLCLIENT_LDFLAGS
-L/opt/homebrew/opt/openssl/lib -L/opt/homebrew/opt/mysql/lib -L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/lib
```

となっていたので、

```shell
% echo $MYSQLCLIENT_LDFLAGS
-L/opt/homebrew/opt/openssl/lib -L/opt/homebrew/opt/mysql/lib -L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/lib -lmysqlclient -rpath /opt/homebrew/opt/mysql/lib
```

となるように修正した。

その後、

```shell
pip uninstall mysqlclient
pip cache purge
pip install mysqlclient
```

を行った。

```shell
python3

>>> import MySQLdb
>>>
```

でエラーが出なければOK
