PyCharm Django项目无法运行调试

时间:2016-12-08 07:50:12

标签: python django pycharm jetbrains-ide

很长一段时间我在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 我已经缩小了问题范围。在此声明之后,错误似乎来自restart_with_reloader中的autoreload.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

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

2 个答案:

答案 0 :(得分:9)

tl; dr solution

Environment variables对话框的Run/Debug Configurations添加此对:

=C: c:\''

enter image description here

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

摘自JetBrains dev评论:

  

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

答案 1 :(得分:0)

我和PyCharm和Django有同样的问题。它是由在PyCharm下运行Django的自动重载功能引起的。我运行PyCharm作为管理员,Jithin Pavithran在评论中提出并且问题解决了。您也可以在PyCharm Django服务器配置中打开“No reload”。