我试图让一个Python脚本在我通过ssh连接到的linux服务器上运行。脚本使用mysqldb。我有我需要的所有其他组件,但当我试图通过setuptools安装mySQLdb,像这样:
python setup.py install
我得到以下与mysql_config命令相关的错误报告。
sh: mysql_config: command not found
Traceback (most recent call last):
File "setup.py", line 15, in <module>
metadata, options = get_config()
File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
有没有其他人遇到过这个错误,如果是的话,你是如何解决的/我能做什么才能成功安装mysqldb?
mySQLdb是mysql的python接口,但它不是mysql本身。显然mySQLdb需要'mysql_config'命令,所以你需要先安装它。
你能确认你是否安装了mysql本身,通过运行“mysql”从shell?这应该给你一个响应,而不是“mysql:命令未找到”。
你用的是哪个linux发行版?Mysql是为大多数linux发行版预先打包的。例如,对于debian / ubuntu,安装mysql非常简单
sudo apt-get install mysql-server
Mysql-config在一个不同的包中,可以从(同样,假设debian / ubuntu)安装:
sudo apt-get install libmysqlclient-dev
如果你使用的是mariadb,将mysql替换掉,然后运行
sudo apt-get install libmariadbclient-dev
参考:
https://github.com/JudgeGirl/Judge-sender/issues/4#issuecomment-186542797
使用apt-get install python-mysqldb
Python 2.5吗?听起来你使用的是一个非常旧的Ubuntu服务器(Hardy 8.04?) -请确认服务器使用的Linux版本。
Python-mysql搜索ubuntu包数据库
一些附加信息:
来自mysql-python -的README
红帽Linux
.............
MySQL-python是在Red Hat Linux 7中预先打包的。X和更新的。这
包括Fedora核心和红帽企业Linux。你也可以
按照上面的描述构建自己的RPM包。
Debian GNU/Linux
................
打包为python-mysqldb_::
# apt-get install python-mysqldb
或者使用Synaptic。
…_python-mysqldb: http://packages.debian.org/python-mysqldb
Ubuntu
......
和Debian一样。
脚注:如果你使用的是比Ubuntu 10.04更老的服务器,那么你已经不受官方支持了,应该尽早升级。
当我试图安装mysql-python时,我得到了同样的错误。
这就是我解决它的方法。
sudo PATH=/usr/local/mysql/bin/:$PATH pip install mysql-python
问题是安装程序无法在默认路径中找到mysql_config。现在可以了。而且奏效了。
15 warnings generated.
clang -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.8-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc -o build/lib.macosx-10.8-intel-2.7/_mysql.so -arch x86_64
Successfully installed mysql-python
Cleaning up...
希望这能有所帮助。
谢谢。
我在Ubuntu 12.04上安装python-mysql
pip install mysql-python
首先,我遇到了同样的问题:
Not Found "mysql_config"
这对我很有效
$ sudo apt-get install libmysqlclient-dev
然后我遇到了这个问题:
...
_mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio
compilación terminada.
error: command 'gcc' failed with exit status 1
然后我试着
apt-get install python-dev
(如果您使用的是python3,请改为安装python3-dev。)
然后我很高兴:)
pip install mysql-python
Installing collected packages: mysql-python
Running setup.py install for mysql-python
building '_mysql' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
In file included from _mysql.c:44:0:
/usr/include/mysql/my_config.h:422:0: aviso: se redefinió "HAVE_WCSCOLL" [activado por defecto]
/usr/include/python2.7/pyconfig.h:890:0: nota: esta es la ubicación de la definición previa
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so
Successfully installed mysql-python
Cleaning up...
This method is only for those who know that Mysql is installed but still mysql_config can't be find. This happens if python install can't find mysql_config in your system path, which mostly happens if you have done the installation via .dmg Mac Package or installed at some custom path. The easiest and documented way by MySqlDB is to change the site.cfg. Find the mysql_config which is probably in /usr/local/mysql/bin/ and change the variable namely mysql_config just like below and run the installation again. Don't forget to un-comment it by removing "#"
以下更改
mysql_config = /usr/local/bin/mysql_config
to
mysql_config = /usr/local/ mysql_bin /mysql_config"
这取决于系统中的路径。
顺便说一下,我在更改site.cfg后使用python安装
sudo /System/Library/Frameworks/ python .framework/Versions/2.7/bin/python setup.py install
我有这个问题,并解决了如果添加一个符号链接到mysql_config。
我用自制软件安装了mysql,并在输出中看到了这一点。
Error: The `brew link` step did not complete successfully
根据你如何得到mysql,它将在不同的地方。在我的例子中,/usr/local/Cellar/mysql
一旦你知道了它的位置,你就应该能够创建一个符号链接,指向python正在寻找它的地方。/usr/local/mysql
这对我很管用。
ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config /usr/local/mysql/bin/mysql_config
我认为在2020年解决这个问题最方便的方法是使用另一个python包。我们不需要安装任何其他二进制软件。
试试这个
PIP安装mysql-connector-python
然后
进口mysql.connector
Mydb = mysql.connector.connect(
主机= " ",
用户= " ",
passwd = " ",
数据库= " "
)
Cursor = mydb。光标(缓冲= True)
游标。执行(“显示表;”)
游标。Execute ('insert into test values (null, "a",10)')
mydb.commit ()
mydb.disconnect ()