Я хотел бы взаимодействовать между Python и Google SQL Cloud с помощью SQLAlchemy. Я попытался запустить следующий код:Проблемы взаимодействия Python с облаком Google SQL
from sqlalchemy import *
engine = create_engine("mysql+mysqldb://[email protected]/<database>?unix_socket=/cloudsql/<projectid>:<instancename>")
df.to_sql('jobsbank', engine, flavor='mysql', if_exists='append',index=True)
create_engine
является метод SQLAlchemy и df
является dataframe панды. Я использую Mac OS 10.11.1 (El Capitan), а версия MySQL - 5.7.10 для OS X 10.9.
Проблема 1. В среде Python 3.4 я получаю «изображение не найдено».
Я использую среду Python 3.4 и устанавливаю следующий пакет MySQLdb, предназначенный для поддержки Python 3: https://github.com/PyMySQL/mysqlclient-python/.
Однако, когда я бегу мой сценарий, он выдает следующую ошибку:
ImportError Traceback (most recent call last)
<ipython-input-7-dd22983d5391> in <module>()
----> 1 import MySQLdb
/Users/---/anaconda/envs/scrape/lib/python3.4/site-packages/mysqlclient-1.3.7-py3.4-macosx-10.5-x86_64.egg/MySQLdb/__init__.py in <module>()
17 from MySQLdb.release import __version__, version_info, __author__
18
---> 19 import _mysql
20
21 if version_info != _mysql.version_info:
ImportError: dlopen(/Users/---/anaconda/envs/scrape/lib/python3.4/site-packages/mysqlclient-1.3.7-py3.4-macosx-10.5-x86_64.egg/_mysql.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Users/---/anaconda/envs/scrape/lib/python3.4/site-packages/mysqlclient-1.3.7-py3.4-macosx-10.5-x86_64.egg/_mysql.so
Reason: image not found
Проблема 2: В Python 2.7, я получаю ошибку не удается подключиться к локальному серверу MySQL через сокет .. .
Когда я попробовал один и тот же код в среде Python 2.7, с пип установить питон-MySQL вместо пакета MySQLDb выше, я получаю сообщение об ошибке:
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2002, "Can't connect to local MySQL server through socket '/cloudsql/myprojectid:myinstancename' (2)")
Я уже предпринял необходимые шаги для авторизации своего IP-адреса и доступа к базе данных облака Google через клиент SQL в моей командной строке, поэтому не знаю, почему я это получаю?
Боковая проблема: По некоторым причинам, я не могу импортировать SQLAlchemy в консоли Notebook IPython при работе в Python 2.7 среды
На другой ноте я имею странную проблему посредством чего я могу импортировать SQLAlchemy в среда Python 2.7 из командной строки, но не из ноутбука iPython, запущена в той же среде. Когда я пытаюсь импортировать SQLAlchemy, используя ноутбук, он говорит мне, что модуль не существует:
ImportError: No module named sqlalchemy
Это происходит, даже если conda list
в этой среде показывает мне установлено, что SQLAlchemy.
Я ужасно сожалею об экспансивной беспорядке этого сообщения. Кажется, что на каждом пути, который я пробовал, есть гаечный ключ. Я прошел через каждое сообщение в StackOverflow, связанное с этим, и пробовал все предложения, но ничего не работает. Любая помощь вообще будет оценена по достоинству.
Если это слишком проблематично, другие предложения о том, как я могу загружать свои данные через Python в облачную базу данных SQL (не обязательно быть google), также будут полезны.
Что будет порт здесь? У меня есть только IP-адрес экземпляра. – runawaykid
По умолчанию mysql-порт равен 3306, но вы можете оставить его без указания mysql + mysqldb: //: @/ ' –
Vadim
Большое спасибо, что решает вторую проблему. – runawaykid