хост-компьютер
Сервер Debian 9.4
Yocto branch
krogoth
, BitBake Build Tool Core version 1.30.0
инструмент рабочего процесса
devtool
Требования
Они должны быть доступны в виде python3.5 пакетов на оборудовании
Я хочу создать рецепты для:
- pynmea2 v1.7.1
- influenxdb-python v5.2.0
Я использую следующие шаги в моем $BUILD_DIR
:
devtool add pynmea2 https://github.com/Knio/pynmea2/archive/v1.7.1.tar.gz
devtool add influxdb-python https://github.com/influxdata/influxdb-python/archive/v5.2.0.tar.gz
Я получаю рецепты из инструментов.Я изменяю RDEPENDS_${PN} += "python-re"
на RDEPENDS_${PN} += "${PYTHON_PN}-re"
для всех зависимостей времени выполнения и переношу эту информацию в соответствующие им файлы .inc
.Файлы упомянуты ниже в Github Gist
GitHub Gists
Gists для pynmea2 и influenxdb-python
Создание изображений
для локальных тестов я добавляю эти рецепты из папки workspace
(автоматически создаваемой devtool
) в local.conf
в `IMAGE_INSTALL_append =" influenxdb-python pynmea2 "
и записываю образ для оборудования.
Board
На плате я запускаю оболочку python3
, чтобы посмотреть, смогу ли я импортировать эти пакеты.Вот вывод из оболочки:
pynmea2 :
Python 3.5.1 (default, Sep 25 2018, 19:27:54)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pynmea2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/site-packages/pynmea2/__init__.py", line 13, in <module>
from .types import *
File "/usr/lib/python3.5/site-packages/pynmea2/types/__init__.py", line 3, in <module>
from .talker import *
File "/usr/lib/python3.5/site-packages/pynmea2/types/talker.py", line 3, in <module>
from ..nmea_utils import *
File "/usr/lib/python3.5/site-packages/pynmea2/nmea_utils.py", line 2, in <module>
import datetime
ImportError: No module named 'datetime'
influenxdb-python :
Python 3.5.1 (default, Sep 25 2018, 19:27:54)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import influxdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/site-packages/influxdb/__init__.py", line 9, in <module>
from .client import InfluxDBClient
File "/usr/lib/python3.5/site-packages/influxdb/client.py", line 14, in <module>
import requests
File "/usr/lib/python3.5/site-packages/requests/__init__.py", line 58, in <module>
from . import utils
File "/usr/lib/python3.5/site-packages/requests/utils.py", line 12, in <module>
import cgi
File "/usr/lib/python3.5/cgi.py", line 30, in <module>
from email.parser import FeedParser
File "/usr/lib/python3.5/email/parser.py", line 12, in <module>
from email.feedparser import FeedParser, BytesFeedParser
File "/usr/lib/python3.5/email/feedparser.py", line 27, in <module>
from email import message
File "/usr/lib/python3.5/email/message.py", line 16, in <module>
from email import utils
File "/usr/lib/python3.5/email/utils.py", line 30, in <module>
import datetime
ImportError: No module named 'datetime'
Контраст
Если я запускаю на плате команду python
и пробую import datetime
, модуль существует.
В чем проблема?Почему datetime
не доступен в виде модуля для python 3.5
?
local.conf
фрагмент
IMAGE_INSTALL_append = " python3 python3-dev python3-enum pynmea2 influxdb-python python3-pyserial "
Редактировать
Я такжеявно добавлено IMAGE_INSTALL_append = " python3-datetime"
в файл local.conf
.Но все та же ошибка.
python-3.5-manifest.inc
SUMMARY_${PN}-modules="All Python modules"
RDEPENDS_${PN}-modules="${PN}-2to3 ${PN}-argparse ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-email ${PN}-enum ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importl
ib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-selectors ${PN}-shell ${PN}-signal ${PN}-smtpd ${PN}-sqlit
e3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc "
ALLOW_EMPTY_${PN}-modules = "1"
файл манифеста уже содержит datetime
?Что я должен изменить в файле, если это необходимо?(Должен ли я добавить его в слой meta-custom
?)