pyserial: No module named tools

匿名 (未验证) 提交于 2019-12-03 02:50:02

问题:

I have installed the latest pySerial on my Ubuntu box with python 2.7.2, and it works fine for most things, but whenever I try to import the 'tools' package, it says that it can't find 'tools'. The documentation for pySerial explicitly references this 'tools' package.

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

and when I:

>>> serial.VERSION '2.5' 

which is the latest version according to Source Forge

So why can't I get to the 'tools' package of pySerial?

回答1:

Use pip to install pyserial. First install pip:

sudo apt-get install python-pip 

After that install pyserial:

sudo pip install pyserial 


回答2:

I got here because I had the same problem. The strange thing was that

import serial 

worked, but

from serial.tools import list_ports 

didn't.

Turns out stupid me named the script "serial.py". After renaming it everything worked.



回答3:

It looks like the ubuntu package does not quite match up with upstream. compare the official pySerial package on their SVN:

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

to the ubuntu package in launchpad:

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

Tools is missing there, too. It does look like they keep the miniterm.py script, and install it... somewhere; I'm not versed enough in deb packaging to understand where, though.



回答4:

The pyserial-2.4-py2.7.egg in the site-packages folder was getting imported instead of from serial in the site-packages folder. Once I renamed this file so that it no longer imported from this it worked fine. You can easily debug this by doing

import serial serial._ _path_ _ 

to see where serial is getting imported from.



回答5:

yes,use python-pip install ,,,then ,,,upgrade,,,the version of serial will be 2.7 ...it workes



回答6:

Just in case that doing "pip install --upgrade" doesn't work(as happened to me), in Linux you can check if you have a serial package in /usr/lib/python2.7/dist-packages, the new serial packaged the one that pip install goes to /usr/**local**/lib/python2.7/dist-packages/serial, for some reason the one in usr/lib/python2.7/ has precedence and the module tools doesn't exist in that version of pyserial. Changing names or deleting the directory solve the problem.



回答7:

You have to call the functions of module this way:

from serials import tools 

For example: If I want to call sqrt function from math module, I would do:

from math import sqrt  import math.sqrt **is wrong.** 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!