pyserial:没有名为tools的模块

时间:2013-01-01 06:35:39

标签: python python-2.7 serial-port pyserial

我已经使用python 2.7.2在我的Ubuntu盒子上安装了最新的pySerial,它适用于大多数事情,但每当我尝试导入'tools'包时,它说它找不到'工具' 。 documentation for 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的'tools'包呢?

11 个答案:

答案 0 :(得分:25)

使用pip安装pyserial。首先安装点子:

sudo apt-get install python-pip

之后安装pyserial

sudo pip install pyserial

答案 1 :(得分:3)

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

import serial

工作,但

from serial.tools import list_ports

没&#39;吨

原来我把脚本命名为#34; serial.py&#34;。重命名后,一切正常。

答案 2 :(得分: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包装方面还不够精通。

答案 3 :(得分:1)

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

轻松调试
import serial
serial._ _path_ _

查看从中导入序列的位置。

答案 4 :(得分:1)

您必须先卸载serialpyserial,然后重新安装pyserial

pip uninstall serial
pip uninstall pyserial

pip install pyserial

由于两个库都包含一个名为serial.py的文件,因此会发生名称冲突。

答案 5 :(得分:0)

是的,使用python-pip install ,,,然后,,,升级,,,串口的版本将是2.7 ...它的工作

答案 6 :(得分:0)

以防万一pip install --upgrade&#34;没有工作(就像发生在我身上一样),在Linux中你可以检查/usr/lib/python2.7/dist-packages中是否有一个串行包,新的串口包装了pip install到/usr/**local**/lib/python2.7/dist-packages/serial的那个,对于某些原因usr/lib/python2.7/中的那个具有优先权,并且模块工具不存在于该版本的pyserial中。更改名称或删除目录可以解决问题。

答案 7 :(得分:0)

对于我来说,我在遇到以下错误后安装了serial,但没有安装pyserial

ImportError: No module named 'serial'

然后import serial还可以,但是from serial import tools无法正常工作。

sudo pip uninstall serialsudo pip install pyserial

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

答案 8 :(得分:0)

pip和python -m pip之间的区别可以是版本。例如,可能是您从python2调用了pip,但是当您键入python -m pip时,您会得到python3,依此类推...

答案 9 :(得分:-1)

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

from serials import tools

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

from math import sqrt

import math.sqrt **is wrong.**

答案 10 :(得分:-1)

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

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

对我有用。我对pip不够了解,无法理解它与常规pip安装pyserial的区别,但是它对我有用(经过很多挫折之后)。