Staram się pip install
na MySQL-python
opakowaniu, ale pojawia się ImportError
.
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$
Jakieś pomysły?
python
python-3.x
jeśli __name__ to None
źródło
źródło
echo $PATH
powieszOdpowiedzi:
W Pythonie 3
ConfigParser
zmieniono jego nazwęconfigparser
na Zgodność z PEP 8. Wygląda na to, że instalowany pakiet nie obsługuje języka Python 3.źródło
sudo python3 -m pip install mysql-connector
i teraz działa. Dzięki za podpowiedź @LongmangZamiast tego możesz użyć tego
mysqlclient
pakietu jako zastępczego zamiennika dla MySQL-python. Jest to rozwidlenieMySQL-python
z dodatkową obsługą Python 3.Po prostu miałem szczęście
w moim python3.4 virtualenv później
co jest oczywiście specyficzne dla Ubuntu / Debian, ale chciałem tylko podzielić się moim sukcesem :)
źródło
libpython3.5-minimal
pakiet (sudo apt-get install libpython3.5-minimal
).Oto kod, który powinien działać zarówno w Pythonie 2.x, jak i 3.x
Oczywiście będziesz potrzebować
six
modułu, ale prawie niemożliwe jest napisanie modułów, które działają w obu wersjach bez sześciu.źródło
from six.moves import configparser
six.moves
to, by „zapewnić spójny interfejs” modułom o zmienionych nazwach; zawijanie importu za pomocątry
/except
podczas używaniasix
pokonuje punkt. Po prostu użyjfrom six.moves import configparser
. Nie potrzeba tu sześciu; można wymienićfrom six.moves import configparser
zeimport ConfigParser as configparser
w swoimexcept
bloku i osiągnąć ten sam efekt bez potrzebysix
.six
tylko wymogu dla Python 2.X, ale nie Python 3.X.six.moves
natywnej nazwy, a także można użyć bezpośrednio w Pythonie 2.Następnie spróbuj ponownie zainstalować python MYSQL. To działało dla mnie
źródło
Python MySQL nie jest obsługiwany w python3 zamiast tego można użyć mysqlclient
Jeśli
fedora/centos/Red Hat
instalujesz następujący pakietyum install python3-devel
pip install mysqlclient
źródło
Jeśli używasz CentOS, musisz użyć
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
pip install mysqlclient
źródło
Zgodność Pythona 2/3
configparser
można rozwiązać po prostu za pomocąsix
bibliotekiźródło
Zrób
pip3 install PyMySQL
i wtedypip3 install mysqlclient
. Pracował dla mnieźródło
Miałem ten sam problem. Okazuje się, że musiałem zainstalować Python3 devel na moim centos. Najpierw musisz wyszukać pakiet zgodny z Twoim systemem.
Następnie zainstaluj pakiet jako:
Następnie zainstaluj mysqlclient z pip
źródło
Dotarłem dalej z odpowiedzią Valeres:
Sugerowałbym połączyć plik zamiast go skopiować. Zapisz, aby zaktualizować. Podłączyłem plik do
/usr/lib/python3/
katalogu.źródło
Wypróbuj to rozwiązanie, które działało dobrze dla mnie.
Zasadniczo jest to ponowna instalacja / aktualizacja do najnowszej wersji mysql z brew , a następnie instalacja
mysqlclient
lubMySQL-Python
zglobal pip3
zamiastvirtualenv pip3
.Następnie uzyskując dostęp do
virtualenv
i pomyślnie zainstalowaćmysqlclient
lubMySQL-Python
.źródło
co powiesz na sprawdzenie najpierw używanej wersji Pythona?
źródło
from six.moves import configparser
Uruchomiłem Kali Linux-Rolling i napotkałem ten problem, kiedy próbowałem uruchomić cupp.py w terminalu, po aktualizacji do Pythona 3.6.0. Po kilku badań i prób znalazłem, że zmiana
ConfigParser
doconfigparser
pracował dla mnie, ale potem natknąłem innego problemu.config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'
Po nieco dalszych badaniach zdałem sobie sprawę, że w Pythonie 3
ConfigParser
zmieniono na,configparser
ale zauważ, że ma on atrybutConfigParser()
.źródło
Otrzymałem ten sam błąd w systemie Mac OS 10, Python 3.7.6 i Django 2.2.7. Chcę skorzystać z tej okazji, aby podzielić się tym, co dla mnie zadziałało po wypróbowaniu wielu rozwiązań.
Kroki
Zainstalowano Connector / Python 8.0.20 dla Mac OS z linku
Skopiuj bieżące zależności do pliku wymagania.txt, dezaktywuj obecną wirtualną env i usuń ją za pomocą;
utwórz plik, jeśli jeszcze go nie utworzono;
touch requirements.txt
kopiowanie zależności do pliku;
python -m pip3 freeze > requirements.txt
dezaktywuj i usuń bieżącą wirtualną środowisko;
deactivate && rm -rf <virtual-env-name>
Utworzył inną wirtualną env i aktywował ją za pomocą;
python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate
Zainstaluj poprzednie zależności za pomocą;
python -m pip3 install -r requirements.txt
źródło
Łaskawie zobaczyć, na co
/usr/bin/python
wskazujejeśli wskazuje na
python3 or higher
zmianę napython2.7
To powinno rozwiązać problem.
Pojawił się błąd instalacji dla wszystkich pakietów Pythona. Rozwiązanie i dyskusja Abe Karplusa dały mi wskazówkę co do problemu. Potem przypomniałem sobie, że ręcznie zmieniłem
/usr/bin/python
zpython2.7
na/usr/bin/python3.5
, co w rzeczywistości było przyczyną problemu. Kiedyś takreverted
samo. Zostało rozwiązane.źródło
MySQL-python
to przesada; zamiast tego użyj wersji biblioteki Python 3.To zadziałało dla mnie
źródło