Wenn wir an einem ziemlich großen/komplexen Django-Projekt mit einem Team arbeiten, sehen wir gelegentlich einen Runserver-Absturz mit ValueError: embedded null byte
. Wir starten runserver neu und es ist in Ordnung - entweder für ein paar Minuten oder ein paar Tage. Wir können kein Muster erkennen, was die Abstürze verursacht (scheint völlig zufällig). Zum Glück passiert es nur in der lokalen Entwicklung, nicht auf unseren Servern, aber ich mache mir Sorgen, dass es uns auf die Straße beißen wird.Mysterious "Embedded Nullbyte" -Fehler
Der Stack-Trace unten zeigt auf keinen Ort in unserem Code - scheint entweder von Django oder dem virtualenv selbst zu kommen.
Verwenden von Django 1.9.8, Python 3.5.0, auf El Capitan.
Ich sehe keine Möglichkeit, dies zu debuggen. Theorien?
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
Interessant - so denken Sie, es ist ein Dateiname Problem ist, anstatt Code? – shacker
@shacker Bearbeitet. – vd1
Also habe ich das versucht, sowohl vom Projekt dir als auch vom virtualenv dir. Im virtualenv dir habe ich folgendes gefunden: 'finden. -name "[^ \ x00]" . ./Lib/python3.5/site-packages/kompressor/tests/statisch/css/url/2'. Ich pip deinstalliert und dann dieses Paket neu installiert, aber der Fund stellt immer noch auf, so werde ich den Entwickler dieses Pakets warnen. – shacker