Pip cài đặt mysql-python không thành công với Môi trườngError: không tìm thấy mysql_config


823

Đây là lỗi tôi nhận được

(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package mysql-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>

    metadata, options = get_config()

  File "setup_posix.py", line 43, in get_config

    libs = mysql_config("libs_r")

  File "setup_posix.py", line 24, in mysql_config

    raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log
(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Running setup.py egg_info for package mysql-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>

    metadata, options = get_config()

  File "setup_posix.py", line 43, in get_config

    libs = mysql_config("libs_r")

  File "setup_posix.py", line 24, in mysql_config

    raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log

Tôi có thể làm gì để giải quyết điều này?


1
Xem chủ đề này: [không tìm thấy mysql_config khi cài đặt giao diện python mysqldb] [1] làm việc cho tôi :) [1]: stackoverflow.com/questions/7475223/
Staccato

Tôi là người dùng hệ điều hành MAC Tôi giải quyết vấn đề này bằng cách đặt câu hỏi này stackoverflow.com/questions/50940302/NH
PatricioS

Câu trả lời:


1398

Có vẻ như mysql_config bị thiếu trên hệ thống của bạn hoặc trình cài đặt không thể tìm thấy nó. Hãy chắc chắn mysql_config đã được cài đặt.

Ví dụ: trên Debian / Ubuntu, bạn phải cài đặt gói:

sudo apt-get install libmysqlclient-dev

Có thể mysql_config không nằm trong đường dẫn của bạn, nó sẽ là trường hợp khi bạn tự biên dịch bộ phần mềm mysql.

Cập nhật: Đối với các phiên bản gần đây của debian / ubfox (kể từ năm 2018), đó là

sudo apt install default-libmysqlclient-dev

24
Điều đó vẫn tạo ra một lỗi cho tôi. Tôi đã sử dụng apt-get install python-mysqldbthay thế.
Jonatan Littke

51
kinh nghiệm 2c của tôi: sudo apt-get install libmysqlclient-devlàm việc cho tôi, sudo apt-get install python-mysqldbkhông giúp được gì
Anentropic

20
@JonatanLittke Cài đặt một loại python-mysqldb toàn cầu đi ngược lại quan điểm của virtualenv IMO.
fncomp 20/03/13

42
cho Mariadb, sudo apt-get install libmariadbclient-devđã lừa
yuvilio

11
Nếu các giải pháp này không hiệu quả với bạn, thì bạn vẫn có thể cần cài đặt python-dev:apt-get install python-dev
Anoyz

295

Trong Mac OS, tôi chỉ cần chạy cái này trong terminal để sửa:

export PATH=$PATH:/usr/local/mysql/bin

Đây là cách khắc phục nhanh nhất tôi tìm thấy - nó thêm nó vào đường dẫn, nhưng tôi nghĩ tốt hơn hết là bạn nên thêm nó vĩnh viễn (tức là thêm nó vào /etc/paths) nếu bạn định cài đặt MySQL-python trong một môi trường khác.

(đã thử nghiệm trong OSX Mountain Lion)


6
Nếu bạn đang sử dụng MAMP chồng BitNami của sử dụng export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binnếu bạn đang sử dụng MAMP chồng thương mại này , mặt khác, gỡ bỏ cài đặt nó và nhận được một BitNami vì nó là shit và không bao gồm các tiêu đề mysql.
Timmmm

3
Để làm cho đường dẫn vĩnh viễn thêm nó vào dưới cùng /etc/paths- bạn sẽ cần mở một cửa sổ terminal mới để truy cập đường dẫn mới.
rojoca

@Timmmm Khá là giải pháp đắt tiền vì tất cả các Cơ sở dữ liệu của tôi đều ở phiên bản chính thức: / có cách nào khác để sắp xếp thứ này không?
Volatil3

1
Rất hữu ích. Nếu bạn đang sử dụng XAMPP, hãy sử dụng nó nhưexport PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Kevin London

10
Điều này cuối cùng hoạt động cảm ơn! ngoài ra nếu mysqlkhông được cài đặt, hãy sử dụng brew install mysqlvị trí của nó /usr/local/bin/mysql(hoặc /usr/local/Cellar/mysql/VERSION/bin/nếu nó không được liên kết với nhau).
Aziz Alto

102
apt-get install libmysqlclient-dev python-dev

Dường như để làm các thủ thuật.


2
vâng, đối với tôi chỉ libmysqlclient-dev là không đủ, python-dev cũng bị thiếu.
Anderson Santos

Trên Ubuntu 12.04 (chính xác) (32-Bit) sau khi nâng cấp tại chỗ từ 10.04 (sáng suốt) chỉ có điều này đã giải quyết được các lỗi này. Đặc biệt là "python-dev" bổ sung!
Băng

Làm việc cho tôi cũng vậy - python-dev là mảnh ghép cuối cùng. Đã cài đặt python-mysqldb, vì vậy đó chắc chắn không phải là tất cả những gì cần thiết.
Tim S.

Cập nhật: đối với Python3 bạn phải cài đặt python3-dev.
cezar

Tôi cần phải làm điều này và cũng cài đặt gccđể có được một cài đặt thành công. Ngoài ra, nó có thể là tốt nhất để không làm python-dev, nhưng xác định phiên bản cụ thể như python2.7-dev, python3.6-devvv
Tim Tisdall

89

Có thể có nhiều câu trả lời cho vấn đề trên, dưới đây là một giải pháp tổng hợp.

Đối với Ubuntu:

$ sudo apt update
$ sudo apt install python-dev
$ sudo apt install python-MySQLdb

Đối với CentOS:

$ yum install python-devel mysql-devel

Cảm ơn các tip centos. Tôi đã theo đuổi điều này cả buổi sáng.
Pete Magsig

Có lẽ đáng để thêm python3-dev/python3-devel
Gergely M

36

Nếu bạn đang dùng MAC Cài đặt này trên toàn cầu

brew install mysql

sau đó xuất đường dẫn như thế này

export PATH=$PATH:/usr/local/mysql/bin

Hơn toàn cầu hoặc trong venv của bạn bất cứ điều gì bạn thích

pip install MySQL-Python

Lưu ý: trên toàn cầu cho python3 vì Mac có thể có cả python2 & 3

pip3 install MySQL-Python

34

Bạn có thể sử dụng Trình kết nối MySQL / Python

Cài đặt qua PyPip

pip install mysql-connector-python

Thông tin thêm có thể được tìm thấy trên blog thông báo MySQL Connector / Python 1.0.5 beta .

Trên Launchpad có một ví dụ hay về cách thêm, chỉnh sửa hoặc xóa dữ liệu với thư viện.


3
Đây là điều duy nhất làm việc cho tôi khi tôi từ bỏ mysqldb và mớ hỗn độn mysql_config. Hoạt động tốt cho mục đích của tôi.
wh1tney

@wjoba bạn có thể giải thích thêm? Tôi đang cài đặt py-mysql2pgsqlvà tìm lỗi của mysql_config. Tôi đang sử dụng MAMP. Kết nối mysqk làm gì?
Volatil3

1
@ Volatil3 mysql-Connector-python hoạt động tốt như một sự thay thế vượt trội cho mysql-python đối với tôi. Việc cài đặt trước qua pip hoạt động không có vấn đề gì và đã thoát khỏi lỗi mysql_config vì (theo cách nói của nhà phát triển) trình kết nối mysql là "Python thuần túy và không cần bất kỳ phần mềm MySQL nào khác, do đó không có thư viện C và biên dịch." Mong rằng sẽ giúp. Hãy thử cài đặt được đề cập trong giải pháp này và xem nếu bạn vẫn gặp lỗi.
wh1tney

Trên Ubuntu 14/4, tôi nhận được: Không thể tìm thấy bất kỳ bản tải xuống nào đáp ứng yêu cầu mysql-Connector-python
Timo

Lệnh này đã làm việc cho tôi sau khi thử mọi thứ khác.
Đồng hồ

27

Đối với người dùng centos :

yum install -y mysql-devel python-devel python-setuptools

sau đó

pip install MySQL-python


Nếu giải pháp này không hoạt động và in lỗi biên dịch gcc như:
_mysql.c:29:20: error: Python.h: No such file or directory

Bạn cần chỉ định đường dẫn của Python.h, như thế này:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python


1
Nghe có vẻ như bạn không có quyền bao gồm các tệp cho tệp nhị phân Python pipđang cài đặt. Python thường cung cấp vị trí bao gồm; thủ công chỉ định đường dẫn rất có thể là trỏ đến phiên bản sai .
Martijn Pieters

Tôi đã phải làm một sudo pip install MySQL-pythonlỗi do:copying build/lib.linux-x86_64-2.7/_mysql_exceptions.py -> /usr/lib64/python2.7/site-packages error: /usr/lib64/python2.7/site-packages/_mysql_exceptions.py: Permission denied
bennythejudge

18

Tôi đã cố gắng cài đặt mysql-pythontrên phiên bản Amazon EC2 Linux và tôi đã phải cài đặt những thứ sau:

yum install mysql mysql-devel mysql-common mysql-libs gcc

Nhưng sau đó tôi đã gặp lỗi này:

_mysql.c:29:20: fatal error: Python.h: No such file or directory

Vì vậy, tôi đã cài đặt:

yum install python-devel

Và đó đã là mẹo.


1
Tôi đã sử dụng: sudo yum install mysql mysql-devel mysql-common mysql-libs gcc bên ngoài virtualenv của tôi. Sau đó, tôi trở lại env ảo của mình và chạy pip install mysql-pythonvà nó hoạt động.
tandy

1
dnf install mysql-devel gcclà đủ cho tôi, nó phụ thuộc vào phần còn lại
Jens Timmerman

python-develBây giờ sẽ báo lỗi, nếu sử dụng python 2.7 hãy thử điều nàypython27-devel
Mã Sizzling

8

Đối với bất kỳ ai đang sử dụng MariaDB thay vì MySQL, giải pháp là cài đặt libmariadbclient-devgói và tạo một liên kết tượng trưng đến tệp cấu hình với tên chính xác.

Ví dụ, điều này làm việc cho tôi:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config

2
Đây là một câu trả lời được đánh giá thấp hữu ích trong mọi trường hợp người ta muốn kết nối với một ổ cắm cơ sở dữ liệu cụ thể, đã biết. Nó giúp tôi kết nối với cơ sở dữ liệu mysql độc lập. Hầu hết các giải pháp ở đây chỉ khuyên bạn nên cài đặt lại (hoặc cài đặt máy khách msql thứ hai hoặc thứ ba ... vv)!
7yl4r


6

OS X Mavericks

Do những thay đổi trong osx mavericks & công cụ phát triển xcode, bạn có thể gặp lỗi khi cài đặt

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

do đó sử dụng:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python

6

Dành cho Linux

cái này hiệu quả với tôi

yum install python-devel mysql-devel

5

cho mariadb cài đặt lib mariadb client-dev thay vì libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

Chỉ cần những gì tôi cần khi sử dụng Debian 9 Stretch với MariaDB
anhtran

4

Bạn nên cài đặt mysqltrước:

yum install python-devel mysql-community-devel -y

Sau đó, bạn có thể cài đặt mysqlclient:

pip install  mysqlclient

2

đôi khi lỗi phụ thuộc vào nguyên nhân thực tế. chúng tôi đã có một trường hợp trong đó mysql-python được cài đặt thông qua gói debian python-mysqldb.

một nhà phát triển không biết điều này, đã vô tình chạy pip uninstall mysql-pythonvà sau đó không thể phục hồi khi pip install mysql-pythonđưa ra lỗi trên.

pip uninstall mysql-python đã phá hủy nội dung gói debian, và tất nhiên pip install mysql-python không thành công vì gói debian không cần bất kỳ tệp dev nào.

giải pháp chính xác trong trường hợp apt-get install --reinstall python-mysqldbđó là khôi phục mysql-python về trạng thái ban đầu.


2

Tôi đã có cùng một vấn đề trong Terraform: thùng chứa ánh sáng. Nó dựa trên núi cao.

Ở đó bạn phải cài đặt mariadb-dev với:

apk add mariadb-dev

Nhưng điều đó là không đủ bởi vì tất cả các phụ thuộc khác đều bị bỏ qua:

apk add python2 py2-pip gcc python2-dev musl-dev

2

Trình tự được theo dõi.

pip install mysqlclient
sudo apt-get install python3-dev libmysqlclient-dev
pip install configparser 
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 

Sau đó thử cài đặt lại MYSQL-python. Điều đó đã làm việc cho tôi


1

Có một vấn đề tương tự khi cố gắng cài đặt trên OS X Server 10.6.8. Đây là những gì tôi phải làm. Sử dụng:

MySQL-python 1.2.4b4 (nguồn) MySQL-5.6.19 (trình cài đặt nhị phân) Python 2.7 (trình cài đặt nhị phân) LƯU Ý: Cài đặt trong virtualenv ...

Giải nén nguồn, mở 'phân phối_setup.py' và chỉnh sửa DEFAULT_VERSION để sử dụng phiên bản mới nhất của công cụ phân phối, như vậy:

DEFAULT_VERSION = "0.6.49"

Tiết kiệm. Mở tệp 'site.cfg' và bỏ ghi chú đường dẫn đến mysql_config để nó trông giống như (tham chiếu đường dẫn của riêng bạn tới mysql_config):

# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
mysql_config = /usr/local/mysql/bin/mysql_config

Bây giờ, dọn dẹp, xây dựng và thực hiện sẽ không thất bại với lỗi không tìm thấy 'mysql_config'. Hy vọng điều này sẽ giúp người khác cố gắng sử dụng xserves cũ của họ :-)


1

Đường dẫn sudo của bạn không biết về đường dẫn cục bộ của bạn ... chuyển sang chế độ siêu người dùng, thêm đường dẫn và cài đặt nó từ đó.

sudo su
export PATH=$PATH:/usr/local/mysql/bin/
pip install mysql-python
exit

Và bạn đang chạy và chạy trên OSX. Bây giờ bạn có một con trăn toàn cầu được cập nhật.



0

trên MacOS Mojave, mysql_config được tìm thấy tại / usr / local / bin / chứ không phải / usr / local / mysql / bin như được chỉ ra ở trên, vì vậy không cần thêm bất cứ điều gì vào đường dẫn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.