我正在尝试让 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?
/usr/bin
是错误的,它是 usr/local/my...
,请参阅 Thi 的答案。
mySQLdb 是 mysql 的 python 接口,但它不是 mysql 本身。显然 mySQLdb 需要命令'mysql_config',所以你需要先安装它。
您能否通过从 shell 运行“mysql”来确认您是否安装了 mysql 本身?这应该会给您一个响应,而不是“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
我在 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...
(特定于 Mac OS X)
我已经尝试了很多东西,但这些命令最终对我有用。
安装mysql brew install mysql brew unlink mysql brew install mysql-connector -c 添加mysql bin文件夹到PATH export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH mkdir /usr/local/Cellar/ lib/ 创建符号链接 sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib brew reinstall openssl (source) 最后, 安装mysql-client LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient
更新:如果这不起作用,@vinyll 建议在第 8 步之前运行 brew link mysql
。
brew info mysql
获取 mysql 安装的实际/正确路径。然后要使 PATH
更改保持不变,请在 ~/.bash_profile 中执行 export PATH..
。
brew link --overwrite mysql-connector-c
的第 1-4 步适用于我的 Mac
brew link mysql
才能使其运行。
.bashrc
:export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
,并且只运行了 brew install mysql
,并且它有效。还修复了 pip 的所有未来执行,以确保它们使用正确的 ssl 库。
brew install mysql
就足够了
在红帽上我必须做
sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python
然后它起作用了。
yum install MySQL-python
MySQL-python
作为 Python 包安装,或者正在使用 virtualenv,这可能会有所帮助:yum install mysql-devel; venv/bin/pip install MySQL-python
。
sudo yum install mariadb-devel
,然后您可以通过 pip install mysqlclient
安装 mysqlclient
yum install mysql-devel
Centos 8
在 python 3.5.2 上
sudo apt-get install libmysqlclient-dev python-dev
libmariadb-dev
。
以下在 Ubuntu 12.04 LTS 上为我工作:
apt-get install libmysqlclient-dev python-dev
尽管它有效,但我仍然继续执行以下操作:
export PATH=$PATH:/usr/local/mysql/bin/
我在尝试安装 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...
希望这可以帮助。
谢谢。
我通过以下步骤解决了这个问题:
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install
default-libmysqlclient-dev
,因为常规的 libmysqlclient-dev
软件包没有安装候选者。
命令(也是 mysql)mPATH 可能丢失。
export PATH=$PATH:/usr/local/mysql/bin/
Step1:-安装Python3 & Python3-dev 两者
sudo apt-get install python3 python3-dev
Step2:- 安装 Python & Mysql 连接器
sudo apt-get install libmysqlclient-dev
step3:- 安装python mysql客户端
sudo apt-get install mysqlclient
这将解决您的问题
软件包 libmysqlclient-dev 已弃用,因此请使用以下命令对其进行修复。
包 libmysqlclient-dev 不可用,但被另一个包引用。这可能意味着该软件包丢失、已过时或只能从其他来源获得
sudo apt-get install default-libmysqlclient-dev
我认为在 2020 年解决这个问题最方便的方法是使用另一个 python 包。我们不需要安装任何其他二进制软件。
尝试这个
pip install mysql-connector-python
接着
import mysql.connector mydb = mysql.connector.connect(host="", user="", passwd="", database="" ) cursor = mydb.cursor(buffered=True) cursor.execute('show tables; ') cursor.execute('插入测试值 (null, "a",10)') mydb.commit() mydb.disconnect()
如果您在 macOS 上并且已经通过 brew install 安装了 mysql@5.7:
brew install mysql-connector-c brew unlink mysql@5.7 brew link --overwrite --dry-run mysql@5.7 首先,看看哪些符号链接被覆盖 brew link --overwrite --force mysql@5.7 实际覆盖mysql-与 mysql@5.7 pip install mysqlclient 相关的符号链接
我通过安装 libmysqlclient 修复了它:
sudo apt-get install libmysqlclient16-dev
在 centos 7 这对我有用:
yum install mariadb-devel
pip install mysqlclient
MySQL-python
软件包使用 mysql_config
命令了解您主机上的 mysql
配置。您的主机没有 mysql_config
命令。
来自 dev.mysql.com 的 MySQL 开发库包 (MySQL-devel-xxx) 提供了这个命令和 MySQL-python 包所需的库。 MySQL-devel
软件包位于下载 - 社区服务器区域。 MySQL 开发库包名称以 MySQL-devel
开头,并根据 MySQL 版本和 linux 平台而有所不同(例如 MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm
。)
请注意,您不需要安装 mysql 服务器。
对于高山 Linux:
$ apk add mariadb-dev mariadb-client mariadb-libs
MariaDB 是 drop-in replacement for MySQL 并成为 Alpine 3.2 的新标准。见https://bugs.alpinelinux.org/issues/4264
在我的 Fedora 23 机器上,我必须运行以下命令:
sudo dnf install mysql-devel
我认为,可以在终端上执行以下几行
sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/
这个 mysql_config 目录用于 MacOSx 上的 zend 服务器。您可以像以下几行一样为 linux 执行此操作
sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/
这是默认的 linux mysql 目录。
如果通过向 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
我有同样的问题。我按照 this tutorial 在 Ubuntu 16.04 上使用 python3-dev 安装 Python 解决了这个问题:
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y python3-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
现在您可以设置您的虚拟环境:
sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate
在 CentOS 7 中,应该做以下事情:
#step1:install mysql
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
#step2:
sudo yum install mysql-devel
或者
sudo yum install mysql-community-devel
你需要安装 python-dev 包:
sudo apt-get install python-dev
sudo apt-get install python-mysqldb
蟒蛇2.5?听起来您使用的是非常旧版本的 Ubuntu Server(Hardy 8.04?) - 请确认服务器使用的 Linux 版本。
python-mysql search on ubuntu package database
一些附加信息:
来自 mysql-python 的 README -
红帽 Linux ......
MySQL-python 预先打包在 Red Hat Linux 7.x 和更新版本中。这包括 Fedora Core 和 Red Hat Enterprise Linux。如上所述,您还可以构建自己的 RPM 包。
Debian GNU/Linux ......
打包为 python-mysqldb
_::
# apt-get install python-mysqldb
或者使用突触。
.._python-mysqldb
:http://packages.debian.org/python-mysqldb
乌班图......
与 Debian 相同。
脚注:如果您确实使用的是早于 Ubuntu 10.04 的服务器发行版,那么您将失去官方支持,应该尽早升级。
此方法仅适用于知道已安装 Mysql 但仍找不到 mysql_config 的人。如果 python install 在您的系统路径中找不到 mysql_config 会发生这种情况,这主要发生在您通过 .dmg Mac 包完成安装或安装在某个自定义路径时。 MySqlDB 最简单且记录在案的方法是更改 site.cfg。找到可能在 /usr/local/mysql/bin/ 中的 mysql_config 并像下面一样更改变量 mysql_config 并再次运行安装。不要忘记通过删除“#”来取消注释
更改以下行
“#mysql_config = /usr/local/bin/mysql_config”
至
“mysql_config = /usr/local/mysql/bin/mysql_config”
取决于系统中的路径。
顺便说一句,我在更改 site.cfg 后使用了 python install
sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install
到目前为止,所有解决方案 (Linux) 都需要 sudo
或 root 权限才能安装 .如果您没有 root 权限且没有 sudo
,这是一个解决方案。 (没有 sudo apt install ...
):
下载 libmysqlclient-dev 的 .deb 文件,例如从此镜像 导航到下载的文件并运行 dpkg -x libmysqlclient-dev_
在 Ubuntu 18.04 上测试。
对于 macOS Mojave ,需要额外的配置,以便编译器找到 openssl 您可能需要设置:
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
我遇到了同样的问题,只是将 *mysql_config* 所在的路径添加到环境变量 PATH 中,它对我有用。
sudo apt-get build-dep python-mysqldb
将安装所有依赖项以从 PIP/easy_install 构建软件包
由于实际错误是
gcc ... -I/usr/include/python2.7 ...
_mysql.c:29:20: error: Python.h: No such file or directory
如果您无法安装 python-dev 或 python-devel 软件包,您可以从 http://hg.python.org/ 下载包含所需版本的 python 源的存档,并将头文件放在适当的文件夹中以供包含
不定期副业成功案例分享
sudo apt-get install mysql-server
和sudo apt-get install mysql-client