팀과 함께 상당히 크고 복잡한 Django 프로젝트에서 작업 할 때 가끔 ValueError: embedded null byte
과 함께 runserver 크래시가 발생합니다. runserver를 다시 시작하면 몇 분 또는 며칠 동안 문제가 없습니다. 우리는 충돌을 야기하는 패턴을 전혀 감지하지 못합니다 (완전히 무작위로 보입니다). 다행스럽게도 그것은 서버가 아니라 지역 개발에서만 발생합니다.하지만 우리가 길을 무너 뜨릴 까봐 걱정됩니다.신비한 "내장 된 널 바이트"오류
아래의 스택 추적 코드는 Django 또는 virtualenv 자체에서 온 것 같습니다.
엘 캐피 탄에서 Django 1.9.8, Python 3.5.0을 사용합니다.
디버깅 할 수있는 방법이 없습니다. 이론? AppConfig
개체
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 54, in execute
super(Command, self).execute(*args, **options)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 93, in handle
self.run(**options)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 102, in run
autoreload.main(self.inner_run, None, options)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/utils/autoreload.py", line 333, in main
reloader(wrapped_main_func, args, kwargs)
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/utils/autoreload.py", line 299, in python_reloader
reloader_thread()
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/utils/autoreload.py", line 275, in reloader_thread
change = fn()
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/utils/autoreload.py", line 204, in code_changed
for filename in gen_filenames():
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/utils/autoreload.py", line 114, in gen_filenames
basedirs = [os.path.abspath(basedir) for basedir in basedirs
File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/utils/autoreload.py", line 115, in <listcomp>
if os.path.isdir(basedir)]
File "/path/to/virtualenvs/ourproj/bin/../lib/python3.5/genericpath.py", line 42, in isdir
st = os.stat(s)
ValueError: embedded null byte
재미있는 - 그래서 당신은 오히려 코드보다, 파일 이름 문제라고 생각? – shacker
@shacker 편집 됨. – vd1
그래서 저는 프로젝트 dir과 virtualenv dir에서이 작업을 시도했습니다. virtualenv dir에서 나는 이것을 보았다 :'find. -name "[^ \ x00]" . ./lib/python3.5/site-packages/압축기/테스트/정적/CSS/URL/2'. 나는 제거한 다음 그 패키지를 다시 설치했지만 find는 여전히 그것을 나타 내기 때문에 패키지의 개발자에게 경고 할 것입니다. – shacker