Python 3 ImportError : 'ConfigParser'라는 모듈이 없습니다.


324

나는에 노력하고 패키지,하지만 난을 얻을 .pip installMySQL-pythonImportError

Jans-MacBook-Pro:~ jan$ /Library/Frameworks/Python.framework/Versions/3.3/bin/pip-3.3 install MySQL-python
Downloading/unpacking MySQL-python
  Running setup.py egg_info for package MySQL-python
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python/setup.py", line 14, in <module>
        from setup_posix import get_config
      File "./setup_posix.py", line 2, in <module>
        from ConfigParser import SafeConfigParser
    ImportError: No module named 'ConfigParser'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

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

  File "/var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python/setup.py", line 14, in <module>

    from setup_posix import get_config

  File "./setup_posix.py", line 2, in <module>

    from ConfigParser import SafeConfigParser

ImportError: No module named 'ConfigParser'

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python
Storing complete log in /Users/jan/.pip/pip.log
Jans-MacBook-Pro:~ jan$ 

어떤 아이디어?


무엇을 echo $PATH말합니까?
inspectorG4dget

20
2017 년에 python3과 동일한 오류가 어떻게 발생합니까?
Claudiu Creanga

답변:


360

Python 3에서는 PEP 8 준수 ConfigParserconfigparser위해 이름이 변경되었습니다 . 설치하는 패키지가 Python 3을 지원하지 않는 것 같습니다.


77
옳은. MySQL-python은 현재 Python 3을 지원하지 않습니다.
Michael Mior

3
내 대안은 무엇입니까? PyMySQL3-0.5를 시도했지만 매우 버그가 있습니다. 처음 실행 호출에서 충돌합니다.
__name__이 None 인 경우

15
@ JanBirsa 빠른 Google 검색은 몇 가지 가능성을 발견했습니다 .PyMySQL 이 작동하지 않으면 OurSQL , MySQL Connector / Python , MySQL-Python 포트 등이 있습니다.
Abe Karplus

12
이것에 대한 움직이는 목표이지만 pip3 install mysql-connector를 사용합니다. 이제 python3 지원을 위해 MySQL에서 사용할 수 있습니다. 타이핑시 릴리즈는 2.1.3입니다.
Longmang 2016 년

4
그냥 시도 sudo python3 -m pip install mysql-connector하고 지금 작동합니다. 힌트를 주셔서 감사합니다 @ Longmang
Marco

407

대신 mysqlclient패키지를 MySQL-python의 드롭 인 대체품으로 사용할 수 있습니다 . MySQL-python파이썬 3을 추가로 지원 하는 포크입니다 .

나는 단순히 운이 좋았다

pip install mysqlclient

내 python3.4 virtualenv에서

sudo apt-get install python3-dev libmysqlclient-dev

우분투 / 데비안에만 해당되는 것이지만, 나는 단지 내 성공을 공유하고 싶었습니다 :)


2
CentOS에서 mysqlclient를 설치하기 전에 "yum install python-devel mysql-devel"을 실행하십시오.
Joe Cheng

3
이 패키지는 GPL 패키지이므로이 모듈을 사용하는 경우 GPL과 함께 프로그램을 해제해야합니다.
bogdan.mustiata

데비안 이 설치하기에 충분 libpython3.5-minimal패키지를 ( sudo apt-get install libpython3.5-minimal).
patryk.beza

2
OSX에서는 mysqlclient를 설치하기 전에 "brew install mysql"을 실행해야합니다.
ghostishev

나는 pip3 install mysqlclient를 사용했으며 매력처럼 작동했습니다! 감사!
적립

16

다음은 Python 2.x 및 3.x에서 작동해야하는 코드입니다.

분명히 six모듈 이 필요 하지만 6 가지 버전이없는 두 버전 모두에서 작동하는 모듈을 작성하는 것은 거의 불가능합니다.

try:
    import configparser
except:
    from six.moves import configparser

5
왜 try 블록 그냥 사용 건너 뛰지from six.moves import configparser
마티아스 쿤

5
-1. 의 요점 six.moves이다 "일관된 인터페이스를 제공합니다" 이름이 바뀐 모듈; 사용 하면 try/ except를 사용하여 가져 오기 를 six감싸면 포인트가 사라집니다. 그냥 사용하십시오 from six.moves import configparser. 여기에는 6 개가 필요하지 않습니다. 당신은 당신의 블록으로 교체 from six.moves import configparser하고 필요없이 동일한 결과를 얻을 수 있습니다 . import ConfigParser as configparserexceptsix
Mark Amery

@MatthiasKuhn 필자 six는 Python 2.X가 아닌 Python 2.X에 대해서만 요구 사항 을 작성하려는 것 같습니다.
Martin Thoma

@MartinThoma 이것은 Mark Amery가 쓴 것처럼 전체 요점을 이깁니다. try / except 검사가 있으면 더 이상 사용할 이유가 없으며 six.moves기본 이름을 Python 2에도 직접 사용할 수 있습니다.
Matthias Kuhn

13
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

그런 다음 MYSQL-python을 다시 설치하십시오. 그것은 나를 위해 일했다


12

MySQL-python은 python3에서 지원되지 않으며 대신 mysqlclient 를 사용할 수 있습니다

fedora/centos/Red Hat다음 패키지 를 설치하는 경우

  1. yum install python3-devel
  2. pip install mysqlclient

1
raise EnvironmentError ( "% s not found"% (mysql_config.path,)) OSError : mysql_config를 찾을 수 없음
PirateApp

1
@PirateApp 아마도 mysql이 설치되지 않았습니다. 여기를 확인하십시오 stackoverflow.com/questions/7475223/…
Kaushal

sudo yum install python3-devel로드 된 플러그인 : fastmirror 캐시 된 호스트 파일에서 미러 속도로드 * base : mirror.web-ster.com * epel : mirrors.cat.pdx.edu * 엑스트라 : mirror.web-ster.com * ius : 미러 .kernel.org * 업데이트 : mirror.web-ster.com python3-devel 패키지가 없습니다. 오류 : 할 일 없음
viru

7

CentOS를 사용하는 경우 다음을 사용해야합니다.

  1. yum install python34-devel.x86_64
  2. yum groupinstall -y 'development tools'
  3. pip3 install mysql-connector
  4. pip install mysqlclient

6

라이브러리 configparser를 통해 Python 2/3의 호환성을 간단히 해결할 수 있습니다.six

from six.moves import configparser

6

수행 pip3 install PyMySQL한 후 pip3 install mysqlclient. 나를 위해 일했다


5

나는 같은 문제를 겪고 있었다. 내 센토에 python3 devel을 설치해야한다는 것이 밝혀졌습니다. 먼저 시스템과 호환되는 패키지를 검색해야합니다.

yum search python3 | grep devel

그런 다음 패키지를 다음과 같이 설치하십시오.

yum install -y python3-devel.x86_64

그런 다음 pip에서 mysqlclient를 설치하십시오.

pip install mysqlclient

3

Valeres 답변을 더 얻었습니다.

pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 그런 다음 MYSQL-python을 다시 설치하십시오. 그것은 나를 위해 일했다

파일을 복사하는 대신 링크하는 것이 좋습니다. 업데이트 저장됩니다. 파일을 /usr/lib/python3/디렉토리에 연결했습니다 .


2

나에게 잘 맞는 솔루션을 사용해보십시오 .

기본적으로 brew 에서 최신 버전의 mysql 을 다시 설치 / 업그레이드 한 다음 또는 대신 또는 에서 설치 합니다.mysqlclientMySQL-Pythonglobal pip3virtualenv pip3

그런 다음에 접근 virtualenv하고 성공적으로 설치 mysqlclient하거나 MySQL-Python.


1

먼저 사용중인 Python 버전을 확인하는 방법은 무엇입니까?

import six
if six.PY2:
    import ConfigParser as configparser
else:
    import configparser

1
이것은 매우 간단합니다from six.moves import configparser
Akif

1

kali linux- Rolling을 실행하고 파이썬 3.6.0으로 업데이트 한 후 터미널에서 cupp.py를 실행하려고 시도했을 때이 문제가 발생했습니다. 몇 가지 연구와 재판을 거친 후 변경 ConfigParserconfigparser저 에게 효과적 이라는 것을 알았지 만 다른 문제가 발생했습니다.

config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'

조금 더 연구 한 후에 파이썬 3 ConfigParser는로 변경 configparser되었지만 속성이 있음을 알았습니다 ConfigParser().


1

Mac OS 10, Python 3.7.6 & Django 2.2.7에서 동일한 오류가 발생했습니다. 이 기회를 사용하여 수많은 솔루션을 시도한 후 나에게 도움이 된 것을 공유하고 싶습니다.

단계

  1. 링크 에서 Mac OS 용 커넥터 / Python 8.0.20 설치

  2. 현재 종속성을 requirements.txt 파일로 복사하고 현재 가상 환경을 비활성화 한 후 다음을 사용하여 삭제하십시오.

    아직 작성하지 않은 경우 파일을 작성하십시오. touch requirements.txt

    의존성을 파일로 복사; python -m pip3 freeze > requirements.txt

    현재 가상 환경을 비활성화하고 삭제합니다. deactivate && rm -rf <virtual-env-name>

  3. 다른 가상 환경을 생성하고 사용하여 활성화했습니다. python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate

  4. 다음을 사용하여 이전 종속성을 설치하십시오. python -m pip3 install -r requirements.txt


-2

친절하게 무엇을 /usr/bin/python가리키는 지

그것이 python3 or higher 변경을 가리키는 경우python2.7

문제가 해결 될 것입니다.

모든 파이썬 패키지에 대해 설치 오류가 발생했습니다. Abe Karplus의 솔루션 및 토론에서 문제가 될 수있는 힌트를 얻었습니다. 그런 다음 /usr/bin/python에서 python2.7를 수동으로 변경하여 /usr/bin/python3.5실제로 문제를 일으켰다는 것을 상기했습니다. 내가 reverted똑같아 해결되었습니다.


4
지원하기 위해 Python 2로 되 돌리는 MySQL-python것은 과도합니다. 대신 Python 3 버전의 라이브러리를 사용하십시오.
Mark Amery

-3

이것은 나를 위해 일했다

cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py

1
그렇게하지 말아야합니다. Abe karplus의 답변을 참조하십시오. Python3에서 ConfigParser의 이름이 configparser로 변경되었습니다.
Bob Yoplait
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.