PyCharm Django项目无法运行调试

Cro*_*ire 5 python django jetbrains-ide pycharm

很长一段时间我在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)
Run Code Online (Sandbox Code Playgroud)

这就是它没有调试的样子:

"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)
Run Code Online (Sandbox Code Playgroud)

最奇怪的是,如果我重新运行,有些时候(大约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: 
Run Code Online (Sandbox Code Playgroud)

编辑2我已经缩小了问题范围.该错误的出现从起源restart_with_reloaderautoreload.py此语句后:

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
Run Code Online (Sandbox Code Playgroud)

也许Python社区的某些人看到过类似的东西?

Cro*_*ire 9

tl; dr解决方案

Environment variablesRun/Debug Configurations对话框中添加此对:

=C: c:\''

在此输入图像描述


我已经向JetBrains YouTrack提交了一张票,这实际上是Windows如何处理命令行环境变量的问题.您可以在此处找到问题的解决方法:https://youtrack.jetbrains.com/issue/PY-17069

摘自JetBrains dev评论:

伙计们,我刚发现Windows和Microsoft CRT中的一个错误:)尝试在运行config = C中添加以下env变量到环境变量:C:= C:``是,= C:是NAME而c:``是值.