我正在运行Debian Linux和Python 2.7.9的Raspberry Pi平台上通过Django / Python框架开发Web应用程序。
我必须在Python脚本中使用多个线程来处理多个外围设备,如摄像头和麦克风。必须实时处理这些外围设备。
我想知道为什么我可以发出" import thread"但不是"导入线程"在我的Python脚本中(无论是Python版本2.x还是3.x)都无关紧要?
pi@raspberrypi:~ $ python --version
Python 2.7.9
pi@raspberrypi:~ $ python ./mythread.py
Traceback (most recent call last):
File "./mythread.py", line 4, in <module>
from threading import Thread
File "/home/pi/threading.py", line 8, in <module>
del _sys.modules[__name__]
AttributeError: 'module' object has no attribute 'Thread'
pi@raspberrypi:~ $ python3 ./mythread.py
Traceback (most recent call last):
File "./mythread.py", line 4, in <module>
from threading import Thread
ImportError: bad magic number in 'threading': b'\x03\xf3\r\n'
答案 0 :(得分:0)
可能存在一些问题,正如@Alberto所提到的,其中一个问题是Python可能正在尝试使用预编译的字节码.pyc文件。为避免这种情况,您可以从相关目录中删除任何pycache文件,然后在解释器尝试运行它们时将重新编译这些文件。下面的Bash代码将以递归方式从当前目录中递归删除.pyc文件。
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf