2014-12-22 7 views
2

Я пытаюсь разрешить некоторые зависимости для соединителя MYSQL для Python на Angstrom.Ошибки Angstrom Python при импорте io

Из командной строки я получаю следующее сообщение об ошибке:

Python 2.6.6 (r266:84292, Feb 25 2011, 16:50:01) 
[GCC 4.3.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import io 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named io 

Я думал, что IO был модуль базового уровня. Это, как представляется уточненным:

# opkg install python-core 
Package python-core (2.6.6-ml12.2.6) installed in root is up to date. 

не должен IO быть доступен по умолчанию, и что я могу сделать, чтобы решить эту проблему?

+0

да она должна быть доступна, как вы установили питон или это системные установки по умолчанию? –

+0

Это была часть моей первоначальной установки Angstrom (только что отмечена на моих заметках). С тех пор я добавил несколько опций, используя opkg, включая библиотеку OpenCV. Мое последнее усилие заключалось в том, чтобы заставить MySQL работать с ним (также используя opkg) и загруженный mysql-коннектор с сайта Mysql/Oracle. – ChronoFish

+1

Вы проверили пакеты, чтобы узнать, есть ли у вас файл io? –

ответ

0

Благодаря Padraic Cunningham, который ведет меня по пути к решению.

Я обнаружил, что в установке отсутствовали несколько файлов, в том числе io.py. Создание Angstrom для изображения Beagleboard (XM) с веб-сайта Angstrom не включало эти файлы (или последующие изменения, которые я удалил их?). Я перестроил Python, сохраняя идентичную версию, из источника Python.

Мне пришлось затем перестроить соединитель MySQL (из MySql/Oracle). (Все мои другие модули, включая OpenCV, продолжали работать без проблем)

Это сработало, и теперь я могу запросить базу данных.

Еще одно примечание. Как только все зависимости были разрешены, я до сих пор не мог подключиться к базе данных. Проблема заключалась в том, что соединитель MySQL предполагал соединение TCP/IP, а не сокет на основе файлов. Так что я должен был добавить следующее в строку подключения:

unix_socket="/tmp/mysql.sock" 

Таких, что полная строка соединения выглядит следующим образом:

cnx = mysql.connector.connect(user='username', password='password', host='localhost', database='dbname', raise_on_warnings=True, unix_socket="/tmp/mysql.sock")