主机
Debian 9.4 服务器
Yocto 分支
krogoth
、BitBake 构建工具核心版本 1.30.0
工作流程工具
开发工具
要求
它们应该在硬件上作为 python3.5 包提供
我想创建食谱:
我在 $BUILD_DIR
中使用以下步骤:
devtool 添加 pynmea2 https://github.com/Knio/pynmea2/archive/v1.7.1.tar.gz
devtool 添加 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 for pynmea2 and influxdb-python
图像创建
对于本地测试,我将这些配方从 workspace
文件夹(由 devtool
自动创建)添加到 `IMAGE_INSTALL_append 下的 local.conf
中=“influxdb-python pynmea2”
并刻录硬件镜像。
董事会
在板上,我运行 python3
shell 以查看是否可以导入这些包。这是 shell 的输出:
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'
influxdb-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 "
编辑
我还在 local.conf
文件中显式添加了 IMAGE_INSTALL_append = "python3-datetime"
。但还是同样的错误。
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"
list 文件中已包含日期时间
?如果有必要,我应该更改文件中的哪些内容? (我应该将其添加到元自定义
层中吗?)
最佳答案
查看 source/poky/meta/recipes-devtools/python/python-3.5-manifest.inc
中的 python-3.5-manifest.inc
文件>
尝试显式引入 python-datetime:
IMAGE_INSTALL_append += "python3-datetime"
关于python - 为 Yocto 创建配方时,python3 中没有名为 'datetime' 的模块,但 python2.7 中存在日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52519565/