3 votes

Comment installer MySQLdb sur mon MacBook ou y a-t-il un moyen de sauter l'installation et d'utiliser sqlalchemy sans lui ?

J'ai MacOS Sierra et XAMPP installé (avec mariadb comme base de données).

Cependant, sur mon MacBook local, j'exécute ce code Python pour créer le tableau :

from sqlalchemy import create_engine

def create_db():
    from sqlalchemy.orm import sessionmaker
    engine = create_engine("mysql://username:password@localhost/exchange_rate", echo = True)
    # Session = sessionmaker(bind = engine)
    # session = Session()
    # import pdb
    # pdb.set_trace()
    meta = MetaData()
    exchange_rate = Table(
        'inr_exchange_rate', meta, 
        Column('id', Integer, primary_key = True), 
        Column('as_of', Date), 
        Column('rate_per_usd', Float), 
        Column('last_modified', DateTime),
        )
    meta.create_all(engine)
    return True

if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    print(args)
    if args.create_db:
        print("Create db called;")
        create_db()
        exit(0)

mais je reçois cette erreur

Traceback (most recent call last):
  File "exchange_rate.py", line 73, in <module>
    create_db()
  File "exchange_rate.py", line 50, in create_db
    engine = create_engine("mysql://username:password@localhost/exchange_rate", echo = True)
  File "/Library/Python/2.7/site-packages/sqlalchemy/engine/__init__.py", line 386, in create_engine
    return strategy.create(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/sqlalchemy/engine/strategies.py", line 75, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/Library/Python/2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 92, in dbapi
    return __import__('MySQLdb')
ImportError: No module named MySQLdb

puis j'ai essayé de suivre les instructions du lien donné par @bmike :

$ sudo pip3 install MySQL-python
Collecting MySQL-python
  Downloading https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip (108kB)
     || 112kB 490kB/s 
    ERROR: Command errored out with exit status 1:
     command: /usr/local/opt/python/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-oxqg62fi/MySQL-python/setup.py'"'"'; __file__='"'"'/private/tmp/pip-install-oxqg62fi/MySQL-python/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: /private/tmp/pip-install-oxqg62fi/MySQL-python/
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/tmp/pip-install-oxqg62fi/MySQL-python/setup.py", line 13, in <module>
        from setup_posix import get_config
      File "/private/tmp/pip-install-oxqg62fi/MySQL-python/setup_posix.py", line 2, in <module>
        from ConfigParser import SafeConfigParser
    ModuleNotFoundError: No module named 'ConfigParser'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

mais si j'essaie d'installer config parser, j'obtiens son message already installed.

$ pip3 install ConfigParser
Requirement already satisfied: ConfigParser in /usr/local/lib/python3.7/site-packages (4.0.2)

1voto

Oskar Points 1242

Pour résoudre l'erreur MySQLdb, essayez de réinstaller le paquet et testez-le.

sudo easy_install pip 
pip install MySQL-python
python -c "import MySQLdb"

https://stackoverflow.com/a/22513919/475228

Le lien ci-dessus serait le cas si vous n'arrivez pas à le faire fonctionner - l'utilisation de homebrew pour installer MySQL vous aide à trouver le chemin et à vous mettre en place avec l'environnement / les diagnostics appropriés et une mise à jour facile lorsque le logiciel est corrigé au fil du temps. Mais, vous n'avez pas besoin de cela pour réinstaller le paquet qui a lancé l'erreur.

De plus, assurez-vous de choisir python3 ou python2. C'est un peu compliqué de les mélanger, si tant est que cela fonctionne. Si vous avez l'intention d'utiliser les deux, je vous conseille d'utiliser homebrew pour gérer les choses au lieu d'utiliser XAMPP.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X