3

我有相当长一段时间以来在本地运行 Django 服务器。今天突然间我开始在运行调试模式时看到错误。它在正常模式下工作正常。

我尝试在 manage.py 中包含 utf-8 但仍然看到错误

pydev debugger: process 10424 is connecting

Connected to pydev debugger (build 192.6603.34)
pydev debugger: process 10425 is connecting

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 2066, in <module>
    main()
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 2060, in main
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1411, in run
    return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1418, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python", line 1
SyntaxError: Non-ASCII character '\xcf' in file /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details```


I expect it to run on debug mode. it already bloked me 1/2 day. Please help if you already have seen this issue or know how to fix this.
4

3 回答 3

5
('sys.argv', ['/Volumes/128GB/tests/testweb/manage.py', 'runserver', '7000'])

Connected to pydev debugger (build 192.6817.19)

pydev debugger: process 19300 is connecting

('setup', {'multiproc': True, 'save-asyncio': False, 'vm_type': None, 'save-threading': False, 'save-signatures': False, 'multiprocess': False, 'module': False, 'server': False, 'client': '127.0.0.1', 'file': '/Volumes/128GB/tests/testweb/manage.py', 'DEBUG_RECORD_SOCKET_READS': False, 'cmd-line': False, 'print-in-debugger-startup': False, 'qt-support': '', 'port': 52573})



('sys.argv', ['/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python', '/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py', '--port', '52573', '--client', '127.0.0.1', '--multiproc', '--file', '/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python', '/Volumes/128GB/tests/testweb/manage.py', 'runserver', '7000'])

pydev debugger: process 19301 is connecting

('setup', {'multiproc': True, 'save-asyncio': False, 'vm_type': None, 'save-threading': False, 'save-signatures': False, 'multiprocess': False, 'module': False, 'server': False, 'client': '127.0.0.1', 'file': '/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python', 'DEBUG_RECORD_SOCKET_READS': False, 'cmd-line': False, 'print-in-debugger-startup': False, 'qt-support': '', 'port': 52573})

  • 操作系统:macOS 10.15.1 (19B88)
  • 蟒蛇:2.7.16
  • PyCharm:2019.2.3(社区版)

我的问题也是。

pydev 应该将 exec python 脚本文件解析为“--file”参数。但是当 fork 一个子进程时,它会将 python 二进制文件添加到“--file”参数中。
天哪,它浪费了我很多时间来处理这个问题。但根本原因仍未找到。

你可以追加

args = args[1:]

以下

from _pydevd_bundle.pydevd_command_line_handling import setup_to_argv

在 PyCharm 安装目录中的 pydev_monkey.py 文件中。这可以暂时使调试功能正常。

例如/Applications/PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_monkey.py在我的电脑上。

于 2019-11-02T12:45:20.357 回答
0

使用 noreload 运行可以解决“SyntaxError: Non-ASCII character '\xcf' in file”的问题。当我在正常模式下运行时,还有一个问题。 在此处输入图像描述 SyntaxError: Non-ASCII character '\xe6'

要定义源代码编码,必须将魔术注释放在源文件中,作为文件的第一行或第二行(例如 /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_bundle/pydev_monkey.py ),如:“# - -coding:utf-8 - - ”

于 2021-03-19T11:06:42.337 回答
0

尝试使用 noreload 运行,因为 pydev 尝试将 python 可执行文件解释为脚本,因此产生子进程的 autoreloader 似乎失败了 截屏

于 2020-03-22T17:03:23.353 回答