问题: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中。
First off, yeah, I’ve already seen this:
pip install mysql-python fails with EnvironmentError: mysql_config not found
The problem
I am trying to use Django on a Google App Engine project. However, I haven’t been able to get started as the server fails to start properly due to:
ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
I did some research and it all pointed to having to install Mysql-python, as apparently it isn’t on my system. I actually tried uninstalling it and got this:
Cannot uninstall requirement mysql-python, not installed
Whenever I actually do try to install via:
sudo pip install MySQL-python
I get an error stating:
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
I’ve already tried running:
export PATH=$PATH:/usr/local/mysql/bin
but that didn’t seem to help, as I ran the installation command again and it still failed.
Any ideas?
Please note I’m not in a 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。
我希望我能提供帮助,并且很高兴知道其中任何一个是否有效。祝好运。
Ok, well, first of all, let me check if I am on the same page as you:
- You installed python
- You did
brew install mysql
- You did
export PATH=$PATH:/usr/local/mysql/bin
- And finally, you did
pip install MySQL-Python
(or pip3 install mysqlclient
if using python 3)
If you did all those steps in the same order, and you still got an error, read on to the end, if, however, you did not follow these exact steps try, following them from the very beginning.
So, you followed the steps, and you’re still geting an error, well, there are a few things you could try:
Try running which mysql_config
from bash. It probably won’t be found. That’s why the build isn’t finding it either. Try running locate mysql_config
and see if anything comes back. The path to this binary needs to be either in your shell’s $PATH environment variable, or it needs to be explicitly in the setup.py file for the module assuming it’s looking in some specific place for that file.
Instead of using MySQL-Python, try using ‘mysql-connector-python’, it can be installed using pip install mysql-connector-python
. More information on this can be found here and here.
Manually find the location of ‘mysql/bin’, ‘mysql_config’, and ‘MySQL-Python’, and add all these to the $PATH environment variable.
If all above steps fail, then you could try installing ‘mysql’ using MacPorts, in which case the file ‘mysql_config’ would actually be called ‘mysql_config5’, and in this case, you would have to do this after installing: export PATH=$PATH:/opt/local/lib/mysql5/bin
. You can find more details here.
Note1: I’ve seen some people saying that installing python-dev
and libmysqlclient-dev
also helped, however I do not know if these packages are available on Mac OS.
Note2: Also, make sure to try running the commands as root.
I got my answers from (besides my brain) these places (maybe you could have a look at them, to see if it would help): 1, 2, 3, 4.
I hoped I helped, and would be happy to know if any of this worked, or not. Good luck.
回答 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
还有中提琴 记住这是一种氛围。
I had been debugging this problem forever – 3 hours 17 mins. What particularly annoyed me was that I already had sql installed on my system through prior uni work but pip/pip3 wasn’t recognising it. These threads above and many other I scoured the internet for were helpful in eluminating the problem but didn’t actually solve things.
ANSWER
Pip is looking for mysql binaries in the Homebrew Directory which is located relative to Macintosh HD @
/usr/local/Cellar/
so I found that this requires you making a few changes
step 1: Download MySql if not already done so https://dev.mysql.com/downloads/
Step 2: Locate it relative to Macintosh HD and cd
/usr/local/mysql/bin
Step 3: Once there open terminal and use a text editor of choice – I’m a neovim guy myself so I typed (doesn’t automatically come with Mac… another story for another day)
nvim mysql_config
Step 4: You will see at approx line 112
# Create options
libs="-L$pkglibdir"
libs="$libs -l "
Change to
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
*you’ll notice that this file has read-only access so if your using vim or neovim
:w !sudo tee %
Step 5: Head to the home directory and edit the .bash_profile file
cd ~
Then
nvim .bash_profile
and add
export PATH="/usr/local/mysql/bin:$PATH"
to the file then save
Step 6: relative to Macintosh HD locate paths and add to it
cd /private/etc/
then
nvim paths
and add
/usr/local/mysql/bin
*you’ll again notice that this file has read-only access so if your using vim or neovim
:w !sudo tee %
then
cd ~
then refresh the terminal with your changes by running
source .bash_profile
Finally
pip3 install mysqlclient
And Viola. Remember it’s a vibe.
回答 2
如果您不想安装完整的mysql,我们可以通过安装mysqlclient来解决此问题。cmd
brew install mysqlclient
完成后,将要求在下面添加以下行~/.bash_profile
:
echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
关闭终端并启动新终端,然后继续 pip install mysqlclient
If you don’t want to install full mysql, we can fix this by just installing mysqlclient
brew install mysqlclient
Once cmd is completed it will ask to add below line to ~/.bash_profile
:
echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
Close terminal and start new terminal and proceed with 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"
I am running Python 3.6 on MacOS Catalina. My issue was that I tried to install mysqlclient==1.4.2.post1
and it keeps throwing mysql_config not found error.
This is the steps I took to solve the issue.
- Install mysql-connector-c using brew (if you have mysql already install unlink first
brew unlink mysql
) – brew install mysql-connector-c
- Open mysql_config and edit the file around line 112
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
brew info openssl
– this will give you more information on what needs to be done about putting openssl in PATH
- in relation to step 3, you need to do this to put openssl in PATH –
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
- for compilers to find openssl –
export LDFLAGS="-L/usr/local/opt/openssl/lib"
- for compilers to find openssl –
export CPPFLAGS="-I/usr/local/opt/openssl/include"
回答 4
当我安装mysqlclient时也会发生这种情况,
$ pip install mysqlclient
如用户3429036所说,
$ brew install mysql
Also this happens when I was installing mysqlclient,
$ pip install mysqlclient
As user3429036 said,
$ 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
This answer is for MacOS users who did not install from brew
but rather from the official .dmg/.pkg
. That installer fails to edit your PATH
, causing things to break out of the box:
- All MySQL commands like
mysql
, mysqladmin
, mysql_config
, etc cannot be found, and as a result:
- the “MySQL Preference Pane” fails to appear in System Preferences, and
- you cannot install any API that communicates with MySQL, including
mysqlclient
What you have to do is appending the MySQL bin
folder (typically /usr/local/mysql/bin
in your PATH
by adding this line in your ~/.bash_profile
file:
export PATH="/usr/local/mysql/bin/:$PATH"
You should then reload your ~/.bash_profile
for the change to take effect in your current Terminal session:
source ~/.bash_profile
Before installing mysqlclient
, however, you need to accept the XcodeBuild license:
sudo xcodebuild -license
Follow their directions to sign away your family, after which you should be able to install mysqlclient
without issue:
pip install mysqlclient
After installing that, you must do one more thing to fix a runtime bug that ships with MySQL (Dynamic Library libmysqlclient.dylib
not found), by adding this line to your system dynamic libraries path:
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"
If you have installed mysql using Homebrew by specifying a version then mysql_config would be present here. – /usr/local/Cellar/mysql@5.6/5.6.47/bin
you can find the path of the sql bin by using ls command in /usr/local/ directory
/usr/local/Cellar/mysql@5.6/5.6.47/bin
Add the path to bash profile like this.
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目录中。
The problem in my case was that I was running the command inside a python virtual environment and it didn’t had the path to /usr/local/mysql/bin though I have put it in the .bash_profile file. Just exporting the path in the virtual env worked for me.
For your info sql_config resides inside bin directory.
回答 8
Install brew or apt-get is also not easy for me so I downloaded mysql via: https://dev.mysql.com/downloads/connector/python/, installed it. So I can find mysql_config int this directory: /usr/local/mysql/bin
the next step is:
- export PATH=$PATH:/usr/local/mysql/bin
- pip install MySQL-python==1.2.5