Настройка Yocto на моем Ubuntu (Ubuntu 18.04.3 LTS / bionic) с ошибкой «ImportError: Нет модуля с именем _sqlite3» - PullRequest
0 голосов
/ 23 октября 2019

моя первая публикация о настройке среды разработки Yocto в моей системе Ubuntu (Ubuntu 18.04.3 LTS / bionic), основанная на информации, содержащейся в документе по этой веб-ссылке (https://www.yoctoproject.org/docs/current/brief-yoctoprojectqs/brief-yoctoprojectqs.html).

All is well until... ~/poky/build$ bitbake core-image-sato

which results in this error:

File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'

Below is my effort to proceed past this error, which didn't resolve the 
error above.  Please be generous and provide some guidance.  I searched for 
relevant posting locations; any advice on a better place is appreciated.    

Thank you.

------------------------------------------------

A web search on this error () results in:
How to Use SQLite in Ubuntu | Chron.com 
with

~/poky/build$ sudo apt-get install sqlite3 libsqlite3-dev

which tells me this:

Reading package lists... Done
Building dependency tree 
Reading state information... Done
libsqlite3-dev is already the newest version (3.22.0-1ubuntu0.1).
sqlite3 is already the newest version (3.22.0-1ubuntu0.1).
The following packages were automatically installed and are no longer 
required:
linux-headers-5.0.0-23 linux-headers-5.0.0-23-generic linux-image-5.0.0-23-generic linux-modules-5.0.0-23-generic
linux-modules-extra-5.0.0-23-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.

So, evidently sqlite3 exists on my system.  Here are the SO references that I checked:

[ImportError: No module named '_sqlite3' in python3.3][1]
[importerror no module named '_sqlite3' python3.4][2]
[ImportError: No module named _sqlite3 (even after doing eveything)][3]
[ImportError: No module named _sqlite3][4]


[1]: https://stackoverflow.com/questions/20126475/importerror-no-module-named-sqlite3-in-python3-3
[2]: https://stackoverflow.com/questions/24052137/importerror-no-module-named-sqlite3-python3-4
[3]: https://stackoverflow.com/questions/35889383/importerror-no-module-named-sqlite3-even-after-doing-eveything
[4]: https://stackoverflow.com/questions/2665337/importerror-no-module-named-sqlite3

1 Ответ

0 голосов
/ 24 октября 2019

Я только что запустил сборку, проверяющую дословно шаги Brief-Quickstart при новой установке Ubuntu 18.04. Там даже не установлен SQLite, но сборка идет хорошо. Таким образом, шансы довольно высоки, установка Python на вашем хосте разработки так или иначе нарушена. Тем не менее, для этого могут быть причины:

  • вы, возможно, явно выбрали python 3.5, потому что для чего-то другого, что вы сделали, это требуется
  • , вы, возможно, неявно выбрали python 3.5, потому что вы переадресовали его на старыйУстановка, установил что-то, что зависело от этого, или подобное.

В любом случае, я бы предположил, что теперь переработка ссылки может сломать что-то еще на вашем компьютере, чего следует избегать IMHO.

Итак, какие у вас есть варианты? Я бы посоветовал начать сборку в контейнере, в самом простом случае для этого требуется не более, чем установка докера и запуск docker run -it ubuntu:bionic /bin/bash - по крайней мере, чтобы убедиться, что все в целом работает.

В долгосрочной перспективе вы можетеВы хотите создать специальный контейнер для этого с одним или двумя дополнениями:

1) уже настроены все необходимые пакеты 2) с использованием стандартного пользователя вместо root.

Это путьЯ делаю вещи лично. Альтернативой может быть использование приготовленных вещей CROPS , поскольку это известное хорошее решение, и оно значительно уменьшает проблемы, возникающие из особенностей системы хоста.

...