pyserial: No module named tools

本秂侑毒 提交于 2019-11-29 10:47:57

问题


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:


In my case, I installed serial but not pyserial after getting the following error.

ImportError: No module named 'serial'

Then import serial was ok, but from serial import tools can't work.

Just sudo pip uninstall serial and sudo pip install pyserial

Hope to help people like me.




回答8:


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.**



回答9:


From the pyserial webpage: https://pyserial.readthedocs.io/en/latest/pyserial.html

They recommend that you use the command: python -m pip install pyserial

That worked for me. I don't know enough about pip to undersand the difference from just a regular pip install pyserial, but it worked for me (after much frustration).



来源:https://stackoverflow.com/questions/14108428/pyserial-no-module-named-tools

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