簡體   English   中英

Python中的線程與線程模塊

[英]thread vs threading module in Python

我正在運行Debian Linux和Python 2.7.9的Raspberry Pi平台上通過Django / Python框架開發Web應用程序。

我必須在Python腳本中使用多個線程來處理多個外圍設備,例如相機和麥克風。 這些外圍設備必須實時處理。

我想知道為什么我可以在我的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'

可能存在兩個問題,如@Alberto所述,其中一個問題是Python可能試圖使用預編譯的字節碼.pyc文件。 為避免這種情況,您可以從相關目錄中刪除所有pycache文件,然后在解釋程序嘗試運行它們時將重新編譯這些文件。 下面的Bash代碼將遞歸從當前目錄中刪除.pyc文件。

find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM