关于python:pyserial:没有名为tools的模块

pyserial: No module named tools

我已经用python 2.7.2在我的Ubuntu设备上安装了最新的pyserial,它在大多数情况下都可以正常工作,但是每当我试图导入"工具"包时,它都说它找不到"工具"。pyserial的文档明确引用了这个"工具"包。

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

当我:

1
2
>>> serial.VERSION
'2.5'

根据source forge,哪个是最新版本

为什么我不能去Pyserial的"工具"包?


pip安装pyserial。第一次安装PIP:

1
sudo apt-get install python-pip

安装完成后,安装pyserial

1
sudo pip install pyserial


我来这里是因为我有同样的问题。奇怪的是

1
import serial

工作,但

1
from serial.tools import list_ports

没有。

结果发现愚蠢的我把剧本命名为"serial.py"。重新命名后,一切正常。


site packages文件夹中的pyserial-2.4-py2.7.egg正在导入,而不是从site packages文件夹中的serial导入。一旦我重命名了这个文件,使它不再从此文件导入,它就可以正常工作了。您可以通过执行

1
2
import serial
serial._ _path_ _

查看序列号从何处导入。


看起来Ubuntu包与上游不太匹配。比较其SVN上的官方pyserial包:

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

到LaunchPad中的Ubuntu包:

http://bazaar.launchpad.net/~ubuntu分支/ubuntu/raring/pyserial/raring/files/head:/serial/

工具也不见了。看起来他们保留了miniterm.py脚本,并安装了它…在某个地方,我对DEB的包装还不够精通,不知道在哪里。


在我的例子中,我在得到以下错误后安装了serial,但没有安装pyserial

1
ImportError: No module named 'serial'

当时江户十一〔11〕还可以,但江户十二〔12〕不行。

只有sudo pip uninstall serialsudo pip install pyserial

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


如果"pip install--upgrade"不起作用(我也是这样),那么在Linux中,您可以检查在/usr/lib/python2.7/dist-packages中是否有一个串行包,新的串行包pip安装到/usr/**local**/lib/python2.7/dist-packages/serial中的那个,由于某种原因,usr/lib/python2.7/中的那个具有优先权,并且该版本的pyserial中不存在模块工具。更改名称或删除目录可以解决问题。


是的,使用python pip install、、、then、、、upgrade、、、和,serial的版本将是2.7…它可以工作。


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

他们建议您使用以下命令:python-m pip安装pyserial

这对我很有用。我对pip的了解还不足以理解它与普通的pip安装pyserial的区别,但是它对我很有效(在经历了很多挫折之后)。


您必须这样调用模块的函数:

1
from serials import tools

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

1
2
3
from math import sqrt

import math.sqrt **is wrong.**