问题:Mac OS X-EnvironmentError:找不到mysql_config
首先,是的,我已经看到了:
pip安装mysql-python失败,并显示EnvironmentError:找不到mysql_config
问题
我正在尝试在Google App Engine项目上使用Django。但是,由于以下原因,服务器无法正常启动,因此无法启动。
ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
我做了一些研究,所有这些都指出必须安装Mysql-python,因为它显然不在我的系统上。我实际上尝试卸载它,并得到了:
Cannot uninstall requirement mysql-python, not installed
每当我真正尝试通过以下方式安装时:
sudo pip install MySQL-python
我收到一条错误消息:
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
我已经尝试运行:
export PATH=$PATH:/usr/local/mysql/bin
但这似乎没有帮助,因为我再次运行了安装命令,但仍然失败。
有任何想法吗?
请注意,我不在virtualenv中。
回答 0
好吧,首先,让我检查一下我是否和您在同一页面上:
- 您安装了python
- 你做了
brew install mysql
- 你做了
export PATH=$PATH:/usr/local/mysql/bin
- 最后,您做到了
pip install MySQL-Python
(或者pip3 install mysqlclient
如果使用python 3)
如果您以相同的顺序执行了所有这些步骤,但是仍然出现错误,请继续阅读,如果您没有按照这些确切的步骤尝试,那么请从头开始。
因此,您按照这些步骤进行操作,仍然遇到错误,可以尝试以下操作:
尝试
which mysql_config
从bash 运行。可能找不到。这就是为什么构建也找不到它的原因。尝试运行locate mysql_config
,看看是否有任何返回。该二进制文件的路径需要在您外壳的$ PATH环境变量中,或者必须在该模块的setup.py文件中显式地存在(假设它正在某个特定位置查找该文件)。除了使用MySQL-Python,还可以尝试使用“ mysql-connector-python”,它可以使用安装
pip install mysql-connector-python
。有关此的更多信息,请参见此处和此处。手动找到“ mysql / bin”,“ mysql_config”和“ MySQL-Python”的位置,并将所有这些都添加到$ PATH环境变量中。
如果以上所有步骤均失败,则可以尝试使用MacPorts安装“ mysql”,在这种情况下,文件“ mysql_config”实际上将被称为“ mysql_config5”,在这种情况下,必须在安装后执行以下操作:
export PATH=$PATH:/opt/local/lib/mysql5/bin
。您可以在此处找到更多详细信息。
注意1:我见过有人说安装python-dev
并提供了libmysqlclient-dev
帮助,但是我不知道这些软件包是否在Mac OS上可用。
注意2:此外,请确保尝试以root用户身份运行命令。
我得到了我的答案,从(除了我的大脑)这些地方(也许你可以看看他们,看看它是否会有所帮助):1,2,3,4。
我希望我能提供帮助,并且很高兴知道其中任何一个是否有效。祝好运。
回答 1
我一直在调试此问题-3小时17分钟。令我特别烦恼的是,我已经通过先前的uni工作在系统上安装了sql,但是pip / pip3却无法识别它。这些线程以及我在互联网上搜索过的许多其他线程有助于消除问题,但实际上并没有解决问题。
回答
Pip在相对于Macintosh HD @ 的Homebrew目录中寻找mysql二进制文件
/usr/local/Cellar/
所以我发现这需要您进行一些更改
步骤1:如果尚未下载MySql,请下载https://dev.mysql.com/downloads/
步骤2:相对于Macintosh HD和cd 找到它
/usr/local/mysql/bin
第3步:打开终端并使用所选的文本编辑器后-我本人是个Neovim家伙,所以我打了一下(Mac并不会自动附带……另一天的故事)
nvim mysql_config
第4步:您将在第112行看到
# Create options
libs="-L$pkglibdir"
libs="$libs -l "
改成
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
*您会注意到该文件具有只读访问权限,因此,如果您使用vim或neovim
:w !sudo tee %
步骤5:转到主目录并编辑.bash_profile文件
cd ~
然后
nvim .bash_profile
并添加
export PATH="/usr/local/mysql/bin:$PATH"
到文件然后保存
步骤6:相对于Macintosh HD找到路径并将其添加
cd /private/etc/
然后
nvim paths
并添加
/usr/local/mysql/bin
*您会再次注意到该文件具有只读访问权限,因此,如果您使用vim或neovim
:w !sudo tee %
然后
cd ~
然后通过运行您的更改刷新终端
source .bash_profile
最后
pip3 install mysqlclient
还有中提琴 记住这是一种氛围。
回答 2
如果您不想安装完整的mysql,我们可以通过安装mysqlclient来解决此问题。cmd
brew install mysqlclient
完成后,将要求在下面添加以下行~/.bash_profile
:
echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
关闭终端并启动新终端,然后继续 pip install mysqlclient
回答 3
我在MacOS Catalina上运行Python 3.6。我的问题是我尝试安装mysqlclient==1.4.2.post1
,并不断抛出mysql_config not found错误。
这是我解决问题的步骤。
- 使用brew安装mysql-connector-c(如果已经有mysql,请先安装unlink
brew unlink mysql
)-brew install mysql-connector-c
- 打开mysql_config并编辑第112行附近的文件
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
brew info openssl
-这将为您提供更多有关将openssl放入PATH中需要执行的操作的信息- 关于步骤3,您需要执行以下操作将openssl放入PATH中-
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
- 供编译器找到openssl-
export LDFLAGS="-L/usr/local/opt/openssl/lib"
- 供编译器找到openssl-
export CPPFLAGS="-I/usr/local/opt/openssl/include"
回答 4
当我安装mysqlclient时也会发生这种情况,
$ pip install mysqlclient
如用户3429036所说,
$ brew install mysql
回答 5
此答案适用于brew
不是从官方安装而是从官方安装的MacOS用户.dmg/.pkg
。该安装程序无法编辑您的PATH
,从而导致出现问题:
- 所有MySQL命令一样
mysql
,mysqladmin
,mysql_config
,等不能被发现,并作为一个结果: - 在“MySQL的预置面板”未出现在系统偏好设置,
- 您不能安装任何与MySQL通信的API,包括
mysqlclient
您要做的是附加MySQL bin
文件夹(通常/usr/local/mysql/bin
在您PATH
的~/.bash_profile
文件中添加以下行:
export PATH="/usr/local/mysql/bin/:$PATH"
然后,您应该重新加载您~/.bash_profile
的更改,以使更改在当前的终端会话中生效:
source ~/.bash_profile
mysqlclient
但是,在安装之前,您需要接受XcodeBuild许可证:
sudo xcodebuild -license
按照他们的指示退出您的家人,之后您应该可以顺利安装mysqlclient
:
pip install mysqlclient
安装在此之后,你必须做一件事来解决运行时错误,船舶与MySQL(动态库libmysqlclient.dylib
未找到),加入这行到你的系统动态库路径:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH
回答 6
如果您通过指定版本使用Homebrew安装了mysql ,则mysql_config将出现在此处。– /usr/local/Cellar/mysql@5.6/5.6.47/bin
您可以在/ usr / local /目录中使用ls命令找到sql bin的路径
/usr/local/Cellar/mysql@5.6/5.6.47/bin
像这样将路径添加到bash配置文件。
nano ~/.bash_profile
export PATH="/usr/local/Cellar/mysql@5.6/5.6.47/bin:$PATH"
回答 7
在我的情况下,问题是我在python虚拟环境中运行命令,尽管我将其放在.bash_profile文件中,但它没有/ usr / local / mysql / bin的路径。只是在虚拟环境中导出路径对我有用。
对于您的信息,sql_config位于bin目录中。
回答 8
对我来说,安装brew或apt-get也不容易,所以我通过以下网址下载了mysql:https://dev.mysql.com/downloads/connector/python/,并安装了它。因此,我可以在以下目录中找到mysql_config:/ usr / local / mysql / bin
下一步是:
- 导出PATH = $ PATH:/ usr / local / mysql / bin
- 点安装MySQL-python == 1.2.5