31

我已经用 python 2.7.2 在我的 Ubuntu 机器上安装了最新的 pySerial,它适用于大多数事情,但是每当我尝试导入“工具”包时,它都会说找不到“工具”。pySerial的文档明确引用了这个“工具”包。

>>> from serial import tools
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    import serial.tools
ImportError: No module named tools

当我:

>>> serial.VERSION
'2.5'

这是Source Forge的最新版本

那么为什么我不能访问 pySerial 的“工具”包呢?

4

11 回答 11

28

用于pip安装pyserial。首先安装pip:

sudo apt-get install python-pip

之后安装pyserial

sudo pip install pyserial
于 2013-01-01T10:34:36.857 回答
6

我来到这里是因为我遇到了同样的问题。奇怪的是

import serial

工作,但是

from serial.tools import list_ports

没有。

原来愚蠢的我将脚本命名为“serial.py”。重命名后一切正常

于 2013-03-13T17:01:47.523 回答
6

您必须卸载serial然后pyserial重新安装pyserial

pip uninstall serial
pip uninstall pyserial

pip install pyserial

因为这两个库都包含一个名为 的文件serial.py,所以您会遇到名称冲突。

于 2020-07-28T07:31:44.893 回答
1

看起来 ubuntu 包与上游不太匹配。比较他们 SVN 上的官方 pySerial 包:

http://pyserial.svn.sourceforge.net/viewvc/pyserial/trunk/pyserial/serial/

到启动板中的 ubuntu 包:

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/raring/pyserial/raring/files/head:/serial/

那里也缺少工具。看起来他们确实保留了miniterm.py脚本,并将其安装在……某处;不过,我对 deb 打包还不够精通,无法理解在哪里。

于 2013-01-01T07:05:38.847 回答
1

site-packages 文件夹中的 pyserial-2.4-py2.7.egg 被导入,而不是从 site-packages 文件夹中的 serial 导入。一旦我重命名了这个文件,使它不再从这个文件中导入,它就可以正常工作了。您可以通过以下方式轻松调试它

import serial
serial._ _path_ _

查看从哪里导入序列号。

于 2016-02-11T21:02:11.387 回答
1

就我而言,我安装了serialpyserial在收到以下错误后没有。

ImportError: No module named 'serial'

然后import serial就好了,但是from serial import tools不能用。

只是sudo pip uninstall serialsudo pip install pyserial

希望能帮助像我这样的人。

于 2018-12-28T08:41:28.230 回答
0

是的,使用 python-pip install ,,,then ,,,upgrade,,,serial 的版本将是 2.7 ...它工作

于 2013-11-20T03:06:07.527 回答
0

以防万一执行“pip install --upgrade”不起作用(就像我发生的那样),在 Linux 中,您可以检查您是否有一个串行包/usr/lib/python2.7/dist-packages,新的串行包是 pip install 去的那个/usr/**local**/lib/python2.7/dist-packages/serial,对于一些原因是 inusr/lib/python2.7/具有优先权,并且该版本的 pyserial 中不存在模块工具。更改名称或删除目录可以解决问题。

于 2014-08-04T15:12:27.233 回答
0

pip 和 python -m pip 的区别可以是版本。例如,可能是你从 python2 调用 pip,但是当你输入 python -m pip 然后你得到 python3 等等......

于 2020-06-10T07:38:41.413 回答
-1

您必须以这种方式调用模块的功能:

from serials import tools

例如:如果我想sqrt从模块调用函数math,我会这样做:

from math import sqrt

import math.sqrt **is wrong.**
于 2013-01-01T06:57:49.960 回答
-1

从 pyserial 网页:https ://pyserial.readthedocs.io/en/latest/pyserial.html

他们建议您使用命令:python -m pip install pyserial

这对我有用。我对 pip 的了解还不够,无法理解与普通 pip install pyserial 的区别,但它对我有用(经过很多挫折)。

于 2018-10-03T20:50:57.660 回答