我无法在任何地方找到这个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
请忽略奇怪的文件路径,我甚至只是尝试将它直接放在C:\上。
这里还有另一个类似的Stackoverflow问题:UnicodeEncodeError when using the compile function但它不像我使用的文件路径使用任何非英文字符。我在那里尝试了几种解决方案,但它们没有用。
运行python 3.4.1,之前在2.7.x中测试过,也没有用。 在linux(Ubuntu)上运行良好。
django项目没什么特别之处,因为它只是空的startproject项目。
答案 0 :(得分:6)
我遇到了同样的问题,我找到了解决方案。从我搜索的内容也发生了 Windows 7&amp; 8.
如果您想更详细地了解我是如何解决的,请查看 我在Django论坛上提交的门票:Error in manage.py runserver on Windows (7 / 8 / 8.1)。
现在解决错误打开此文件 C:\ Program Files \ Python \ lib \ site-packages \ django \ utils \ autoreload.py (我使用您的代码作为参考)并添加 错误发生之前的这行代码(第279行):
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].replace('\u202a', ''))
您的功能现在应如下所示:
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
现在再次尝试使用manage.py runserver。我希望这能解决你的问题 不要觉得你独自一人。
答案 1 :(得分:3)
在我的情况下,它与PATH
无关,似乎CHROME_RESTART
环境设置有一些非英文字符。从new_environ
弹出它可以解决问题:
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 will prevent UnicodeEncodeError
new_environ.pop("CHROME_RESTART", None)
exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
if exit_code != 3:
return exit_code
答案 2 :(得分:2)
我试过这个
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].replace('\u202a', ''))
但它不起作用。
我的解决方案是
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].encode('ascii', 'replace'))
希望它会对你有所帮助!
答案 3 :(得分:1)
UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1:invalid character
我在Windows 7上遇到了与
相同的问题$ python manage.py runserver
如果有人像我一样拥有西里尔语的计算机名称,这正是造成编码问题的原因。所以解决方案是仅使用拉丁字母符号重命名您的计算机。
答案 4 :(得分:1)
我遇到了同样的问题 原因是环境变量条目中的非拉丁字符 在我的情况下,它是某些文件夹的cyrilic名称,而我的窗口最初是英文版 所以它有冲突。删除后 - 一切正常。