Python 3 ImportError: 'ConfigParser' adlı modül yok


324

Ben çalışıyorum paketin, ancak bir olsun .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$ 

Herhangi bir fikir?


ne echo $PATHdiyor
inspectorG4dget

20
2017'de nasıl python3 ile aynı hatayı alıyorum?
Claudiu Creanga

Yanıtlar:


360

Python 3'te, PEP 8 uyumluluğu için ConfigParseryeniden adlandırıldı configparser. Yüklediğiniz paket Python 3'ü desteklemiyor gibi görünüyor.


77
Doğru. MySQL-python şu anda Python 3'ü desteklememektedir.
Michael Mior

3
Alternatiflerim neler? PyMySQL3-0.5 denedim ama onun çok arabası, ilk yürütme çağrısında çöküyor.
__name__ ise Yok

15
@JanBirsa Hızlı bir google araması birkaç olasılık buldu: PyMySQL işe yaramazsa , MySQL , MySQL Connector / Python , MySQL-Python'un bir limanı ve diğerleri var.
Abe Karplus

12
Bu bir hareketli hedef ama ben pip3 install mysql-konektörü kullanın. Şimdi python3 desteği için MySQL'den edinilebilir. Yazma sırasındaki sürüm 2.1.3.
Longmang

4
Sadece denedim sudo python3 -m pip install mysql-connectorve şimdi çalışıyor. İpucu için teşekkürler @Longmang
Marco

407

Bunun yerine mysqlclientpaketi MySQL-python için bir yedek yerine kullanabilirsiniz . MySQL-pythonPython 3 için ek destekli bir çatal .

Basitçe şansım vardı

pip install mysqlclient

sonra benim python3.4 virtualenv

sudo apt-get install python3-dev libmysqlclient-dev

hangi açıkça ubuntu / debian özgü, ama ben sadece benim başarımı paylaşmak istedim :)


2
CentOS üzerinde, mysqlclient'i yüklemeden önce "yum install python-devel mysql-devel" komutunu çalıştırın.
Joe Cheng

3
Bunun bir GPL paketi olduğunu unutmayın, bu nedenle bu modülü kullanırsanız, programınızı GPL ile de yayınlamanız gerekir.
bogdan.mustiata

On Debian yüklemek yeterlidir libpython3.5-minimalpaketi ( sudo apt-get install libpython3.5-minimal).
patryk.beza

2
OSX'te mysqlclient'i kurmadan önce "brew install mysql" komutunu çalıştırmalısınız.
ghostishev

Pip3 install mysqlclient kullandım ve bir cazibe gibi çalıştı! Teşekkürler!
2018

16

Hem Python 2.x hem de 3.x'de çalışması gereken bir kod

Açıkçası sixmodüle ihtiyacınız olacak , ancak her iki versiyonda da altı olmadan çalışan modüller yazmak neredeyse imkansız.

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

5
Neden denemeyi from six.moves import configparser
Matthias Kuhn

5
-1. Tüm amacı six.movesetmektir "tutarlı bir arayüz sağlamak" adını modülleri; Bir ambalajlama ithalat try/ exceptkullanarak sixyener noktası. Sadece kullan from six.moves import configparser. Burada altıya gerek yok; değiştirmek olabilir from six.moves import configparserile import ConfigParser as configparsersizin de exceptblok ve gerek kalmadan aynı sonucu elde six.
Mark Amery

@MatthiasKuhn Sanırım niyet sixPython 2.X için sadece bir gereklilik yapmaktı , ama Python 3.X değil.
Martin Thoma

@MartinThoma (Mark Amery'nin yazdığı gibi) bütün noktayı yener. Deneme / hariç tutma kontrolü mevcutsa, kullanım için başka bir neden yoktur six.movesve yerel ad doğrudan Python 2 için de kullanılabilir.
Matthias Kuhn

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

Ardından MYSQL-python'u tekrar yüklemeyi deneyin. Benim için çalıştı


12

MySQL-python python3 üzerinde desteklenmiyor, bunun yerine mysqlclient kullanabilirsiniz

Üzerinde ise fedora/centos/Red Hatpaketi aşağıdaki yükleme

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

1
Yükseltme EnvironmentError ("% s bulunamadı"% (mysql_config.path,)) OSError: mysql_config bulunamadı
PirateApp

1
@PirateApp muhtemelen mysql yüklenmez. buradan kontrol edin stackoverflow.com/questions/7475223/…
Kaushal

sudo yum install python3-devel Yüklü eklentiler: fastestmirror Önbellek hostfile * base: mirror.web-ster.com * epel: mirrors.cat.pdx.edu * extras: mirror.web-ster.com * ius: mirrors .kernel.org * güncellemeleri: mirror.web-ster.com python3-devel paketi yok. Hata: Yapacak bir şey yok
viru

7

CentOS kullanıyorsanız, o zaman kullanmanız gerekir

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

6

Python 2/3'ün uyumluluğu configparsersadece sixkütüphane tarafından çözülebilir

from six.moves import configparser

6

Yap pip3 install PyMySQLve sonra pip3 install mysqlclient. Benim için çalıştı


5

Aynı sorunu yaşıyordum. Görünüşe göre, centosuma python3 devel yüklemem gerekiyordu. İlk olarak, sisteminizle uyumlu paketi aramanız gerekir.

yum search python3 | grep devel

Ardından paketi şu şekilde yükleyin:

yum install -y python3-devel.x86_64

Sonra pip gelen mysqlclient yükleyin

pip install mysqlclient

3

Valeres cevabı ile daha da ileri gittim:

pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py Sonra MYSQL-python'u kurmayı deneyin. Benim için çalıştı

Dosyayı kopyalamak yerine bağlamanızı öneririm. Güncellemek için kaydedilir. Dosyayı /usr/lib/python3/dizine bağladım.


2

Benim için iyi sonuç veren bu çözümü deneyin .

Temel olarak yeniden var / son sürümüne yükseltme mysql den demlemek yükleme sonra ve mysqlclientya MySQL-Pythondan global pip3yerinevirtualenv pip3 .

Sonra virtualenvve başarıyla yükleyin mysqlclientveya yükleyin MySQL-Python.


1

ilk kullandığınız Python sürümünü kontrol etmeye ne dersiniz?

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

1
Bu çok basit olurdufrom six.moves import configparser
Akif

1

Kali linux- Rolling'i çalıştırıyorum ve python 3.6.0'a güncelledikten sonra terminalde cupp.py çalıştırmayı denediğimde bu sorunla karşılaştım. Biraz araştırma ve yargılamadan sonra değişikliğin benim ConfigParseriçin configparserişe yaradığını fark ettim ama sonra başka bir sorunla karşılaştım.

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

Biraz daha araştırma yaptıktan sonra python 3 ConfigParseriçin değiştirildiğini fark ettim, configparserancak bir özelliği olduğunu unutmayın ConfigParser().


1

Aynı hatayı Mac OS 10, Python 3.7.6 ve Django 2.2.7'de alıyordum. Bu fırsatı, sayısız çözüm denedikten sonra benim için neyin işe yaradığını paylaşmak için kullanmak istiyorum.

adımlar

  1. Mac OS için Bağlayıcı / Python 8.0.20 Yüklü bağlantı

  2. Geçerli bağımlılıkları gereksinimler.txt dosyasına kopyalayın, geçerli sanal ortamı devre dışı bırakın ve kullanarak silin;

    henüz oluşturulmamışsa dosyayı oluşturun; touch requirements.txt

    dosyaya kopya bağımlılığı; python -m pip3 freeze > requirements.txt

    geçerli sanal ortamı devre dışı bırakma ve silme; deactivate && rm -rf <virtual-env-name>

  3. Başka bir sanal env oluşturdu ve kullanarak etkinleştirdi; python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate

  4. Önceki bağımlılıkları kullanarak; python -m pip3 install -r requirements.txt


-2

Neye /usr/bin/pythonişaret ettiğini görmek için lütfen

eğer python3 or higher değiştirmek için işaret ediyorsapython2.7

Bu sorunu çözmelidir.

Tüm python paketleri için yükleme hatası alıyordum. Abe Karplus'ın çözümü ve tartışması bana sorunun ne olabileceğine dair ipucu verdi. Sonra ben elle değişmişti hatırlattı /usr/bin/pythongelen python2.7etmek /usr/bin/python3.5aslında soruna neden oldu, hangi. Bir kez revertedaynı. Çözüldü.


4
Destek için Python 2'ye geri dönmek MySQL-pythonaşırıdır; bunun yerine kütüphanenin Python 3 sürümünü kullanın.
Mark Amery

-3

Bu benim için çalıştı

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

1
bunu yapmamalı. Abe karplus'ın cevabına bakınız. ConfigParser, Python3'te configparser olarak yeniden adlandırıldı.
Bob Yoplait
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.