在Windows 8.1上使用Django的manage.py runserver出错

Bla*_*nen 3 python windows django mbcs

我无法在任何地方找到这个exitcode,但希望你们中的一个可以帮助我或让我知道这是否是python/Django中的错误.

无论如何,首先是这里的堆栈跟踪:

    Traceback (most recent call last):
  File "C:\Sitezooi\SiteTest\manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Program Files\Python\lib\site-packages\django\core\management\__init_
_.py", line 385, in execute_from_command_line
    utility.execute()
  File "C:\Program Files\Python\lib\site-packages\django\core\management\__init_
_.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Program Files\Python\lib\site-packages\django\core\management\base.py
", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "C:\Program Files\Python\lib\site-packages\django\core\management\base.py
", line 338, in execute
    output = self.handle(*args, **options)
  File "C:\Program Files\Python\lib\site-packages\django\core\management\command
s\runserver.py", line 83, in handle
    self.run(*args, **options)
  File "C:\Program Files\Python\lib\site-packages\django\core\management\command
s\runserver.py", line 92, in run
    autoreload.main(self.inner_run, args, options)
  File "C:\Program Files\Python\lib\site-packages\django\utils\autoreload.py", l
ine 322, in main
    reloader(wrapped_main_func, args, kwargs)
  File "C:\Program Files\Python\lib\site-packages\django\utils\autoreload.py", l
ine 293, in python_reloader
    exit_code = restart_with_reloader()
  File "C:\Program Files\Python\lib\site-packages\django\utils\autoreload.py", l
ine 279, in restart_with_reloader
    exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: inval
id character
Run Code Online (Sandbox Code Playgroud)

请忽略这个奇怪的文件路径,我甚至只是尝试将它直接放在C:\上.

这里有另一个类似的Stackoverflow问题:使用编译函数时的UnicodeEncodeError,但它不像我使用的文件路径使用任何非英文字符.我在那里尝试了几种解决方案,但它们没有用.

运行python 3.4.1,之前在2.7.x中测试过,也没有用.在linux(Ubuntu)上运行良好.

django项目没有什么特别之处,因为它只是空的startproject项目.

小智 6

我遇到了同样的问题,我找到了解决方案.从我搜索到的内容也发生在Windows 7和8中.

如果您想更详细地了解我是如何解决的,请查看我在Django论坛中提交的票证:Windows上的manage.py runserver出错(7/8/8.1).

现在要解决的错误打开此文件C:\ Program Files文件\ Python的\ LIB \站点包\ Django的\ utils的\ autoreload.py(我用你的代码作为参考),只是你的错误之前添加此行代码(第279行):

new_environ['PATH'] = os.path.abspath(new_environ['PATH'].replace('\u202a', ''))
Run Code Online (Sandbox Code Playgroud)

你现在的功能应该是这样的:

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'
        new_environ['PATH'] = os.path.abspath(new_environ['PATH'].replace('\u202a', ''))
        exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
        if exit_code != 3:
            return exit_code
Run Code Online (Sandbox Code Playgroud)

现在再次尝试使用manage.py runserver.我希望这能解决你的问题,不要觉得你是孤身一人.