【发布时间】:2019-05-12 21:05:20
【问题描述】:
我已经使用 pip3 安装了 pyserial 模块。导入该模块并在 IDLE shell 中逐行执行(复制和粘贴)程序可以正常工作,但运行文件(使用 IDLE)会导致 ModuleNotFoundError。
我的 python 版本是 MacOS 10.14.5 上的 3.7.3
我比较了 sys.version、sys.path 和 sys.executable。 sys.version 是
"3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) \n[Clang 6.0 (clang-600.0.57)]"
sys.executable 是
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
sys.path 是
['', '/Users/edidos/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
除了 sys.path[0] 从文件运行时引用文件位置之外,没有任何区别。
import sys
print(sys.path)
print()
print(sys.version)
print()
print(sys.executable)
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
for port, desc, hwid in sorted(ports):
print("{}: {} [{}]".format(port, desc, hwid))
这是确切的错误:
Traceback (most recent call last):
File "/Users/edidos/Projecte/PythonRPLidar/serial.py", line 9, in <module>
import serial.tools.list_ports
File "/Users/edidos/Projecte/PythonRPLidar/serial.py", line 9, in <module>
import serial.tools.list_ports
ModuleNotFoundError: No module named 'serial.tools'; 'serial' is not a package
【问题讨论】:
-
使用
from serial import tool代替import serial.tools.list_ports使用list_ports作为tools.list_port
标签: python