You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Python脚本时遭遇SyntaxError错误求助(Linux Mint环境)

问题解决:Python3导入pyautogui时的SyntaxError错误

错误根源

你的问题并非pyautogui库或虚拟环境导致,而是当前目录下存在名为socket.py的自定义文件,该文件使用了Python2的异常语法,干扰了Python对标准库socket模块的正常导入。

从报错栈可以明确看到:当代码执行到import socket时,Python优先加载了你本地/home/user/socket.py文件,而非系统标准库的socket模块。该文件第6行的except socket.error, e:是Python2的写法,Python3要求必须使用except socket.error as e:的格式,因此触发SyntaxError。

解决步骤

  • 找到当前目录下的socket.py文件,将其重命名(比如改为my_socket_utils.py)或直接删除,避免与标准库模块名冲突。
  • 若目录下存在socket.pyc字节码缓存文件,一并删除。
  • 重新运行你的鼠标移动脚本即可。

附用户提供的报错信息

Traceback (most recent call last):
  File "/home/user/move_mouse_every_minute.py", line 1, in <module>
    import pyautogui
  File "/home/user/.local/lib/python3.10/site-packages/pyautogui/__init__.py", line 246, in <module>
    import mouseinfo
  File "/home/user/.local/lib/python3.10/site-packages/mouseinfo/__init__.py", line 207, in <module>
    from Xlib.display import Display
  File "/home/user/.local/lib/python3.10/site-packages/Xlib/display.py", line 26, in <module>
    from Xlib.protocol import display, request, event, rq
  File "/home/user/.local/lib/python3.10/site-packages/Xlib/protocol/display.py", line 24, in <module>
    import socket
  File "/home/user/socket.py", line 6
    except socket.error, e: 
           ^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 21, in <module>
    from urllib.request import urlopen
  File "/usr/lib/python3.10/urllib/request.py", line 88, in <module>
    import http.client
  File "/usr/lib/python3.10/http/client.py", line 71, in <module>
    import email.parser
  File "/usr/lib/python3.10/email/parser.py", line 12, in <module>
    from email.feedparser import FeedParser, BytesFeedParser
  File "/usr/lib/python3.10/email/feedparser.py", line 27, in <module>
    from email._policybase import compat32
  File "/usr/lib/python3.10/email/_policybase.py", line 9, in <module>
    from email.utils import _has_surrogates
  File "/usr/lib/python3.10/email/utils.py", line 29, in <module>
    import socket
  File "/home/user/socket.py", line 6
    except socket.error, e: 
           ^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized

Original exception was:
Traceback (most recent call last):
  File "/home/user/move_mouse_every_minute.py", line 1, in <module>
    import pyautogui
  File "/home/user/.local/lib/python3.10/site-packages/pyautogui/__init__.py", line 246, in <module>
    import mouseinfo
  File "/home/user/.local/lib/python3.10/site-packages/mouseinfo/__init__.py", line 207, in <module>
    from Xlib.display import Display
  File "/home/user/.local/lib/python3.10/site-packages/Xlib/display.py", line 26, in <module>
    from Xlib.protocol import display, request, event, rq
  File "/home/user/.local/lib/python3.10/site-packages/Xlib/protocol/display.py", line 24, in <module>
    import socket
  File "/home/user/socket.py", line 6
    except socket.error, e: 
           ^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized

用户运行的脚本代码

import pyautogui
import time

while True:
    for i in range(0,100):
        pyautogui.moveTo(1000,i*10)
        time.sleep(5)

虚拟环境下的报错信息

Traceback (most recent call last):
  File ".../move_mouse_every_minute.py", line 1, in <module>
    import pyautogui
  File ".../site-packages/pyautogui/__init__.py", line 246, in <module>
    import mouseinfo
  File ".../site-packages/mouseinfo/__init__.py", line 207, in <module>
    from Xlib.display import Display
  File ".../site-packages/Xlib/display.py", line 26, in <module>
    from Xlib.protocol import display, request, event, rq
  File ".../site-packages/Xlib/protocol/display.py", line 24, in <module>
    import socket
  File ".../socket.py", line 6
    except socket.error, e: 
           ^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized

内容的提问来源于stack exchange,提问作者hobbyist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 17:23:11