チームとかなり大規模/複雑な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
私はこれを、プロジェクトディレクトリとvirtualenvディレクトリの両方から試しました。 virtualenv dirでは、私はこれを見つけました: 'find。 -name "[^ \ x00]" 。 。/ lib/python3.5/site-packages/compress/tests/static/css/url/2'。アンインストールしてからそのパッケージを再インストールしますが、まだ見つかっていないので、そのパッケージの開発者に警告します。 – shacker