我在我的Windows 10电脑上有一个奇怪的问题已经很长时间了。当我尝试在PyCharm上启动带有调试(甚至无调试)的Django服务器时,会出现以下错误:
...
pydev debugger: process 10532 is connecting
Connected to pydev debugger (build 163.8233.8)
Process finished with exit code -1073741819 (0xC0000005)
这就是没有进行调试时的样子:
"C:\Program Files (x86)\PyCharm\bin\runnerw.exe" D:\project\env\Scripts\python.exe D:/project/manage.py runserver 80
Process finished with exit code -1073741819 (0xC0000005)
最奇怪的是,如果我重新运行,有时候(4-6次重试中成功1次),它会成功启动。我也无法在没有PyCharm的情况下重现这个问题。
规格:Windows 10 Pro,Pycharm(版本从5.x到2016.3都会出现)x86和x64版本,Python 3.5x,Django 1.8-1.10.x。
有什么想法为什么会发生这种情况或如何获取有关崩溃的更详细信息吗?
编辑:以下是事件查看器报告的错误信息:
Faulting application name: python.exe, version: 3.5.1150.1013, time stamp: 0x566391f0
Faulting module name: ucrtbase.dll, version: 10.0.14393.0, time stamp: 0x57898db2
Exception code: 0xc0000005
Fault offset: 0x000b6d95
Faulting process ID: 0x1b30
Faulting application start time: 0x01d251286ca8ada3
Faulting application path: D:\project\env\Scripts\python.exe
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
Report ID: b23376d6-cf66-4d83-8781-cd22311e0f9e
Faulting package full name:
Faulting package-relative application ID:
编辑2 我已经缩小了问题范围。错误似乎源于autoreload.py
中的restart_with_reloader
,在此语句之后出现:
def restart_with_reloader():
while True:
args = [sys.executable] + ['-W%s' % o for o in sys.warnoptions] + sys.argv
if sys.platform == "win32":
args = ['"%s"' % arg for arg in args]
new_environ = os.environ.copy()
new_environ["RUN_MAIN"] = 'true'
# this line crashes the whole script
# I guess the problem arises in native code
exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
# debugger disconnects here
if exit_code != 3:
return exit_code
也许Python社区中的某些人已经看到过类似的东西?
D:\project\env\Scripts\python.exe
)调用了模块C:\WINDOWS\System32\ucrtbase.dll
,并引发了异常。我建议你重新创建虚拟环境并重试。 - Laurent LAPORTEhttp://127.0.0.1:80
,DJANGO_SETTINGS_MODULE=ta.conf.settings.dev; PYTHONUNBUFFERED=1
,Python 3.5.1与virtualenv。 - Crossfire