Python “Django”;ValueError:嵌入的空字节;

Python “Django”;ValueError:嵌入的空字节;,python,django,python-3.x,Python,Django,Python 3.x,我刚刚安装了Django,并在settings.py中将数据库从sqlite3更改为mysql,但当我运行服务器时,偶尔会出现“ValueError:embedded null byte”。 我该怎么办 Python 3.6.1 Django版本2.2.1 (myproject)bash-3.2$python manage.py运行服务器 使用StatReloader监视文件更改 正在执行系统检查。。。 系统检查未发现任何问题(0静音)。 回溯(最近一次呼叫最后一次): 文件“manage.

我刚刚安装了Django,并在settings.py中将数据库从sqlite3更改为mysql,但当我运行服务器时,偶尔会出现“ValueError:embedded null byte”。 我该怎么办

  • Python 3.6.1
  • Django版本2.2.1
(myproject)bash-3.2$python manage.py运行服务器
使用StatReloader监视文件更改
正在执行系统检查。。。
系统检查未发现任何问题(0静音)。
回溯(最近一次呼叫最后一次):
文件“manage.py”,第21行,在
main()
文件“manage.py”,第17行,主
从命令行(sys.argv)执行命令
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/core/management/_init__.py”,第381行,从命令行执行
utility.execute()
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/core/management/_init__.py”,执行中第375行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site-packages/django/core/management/base.py”,第323行,运行时从
self.execute(*args,**cmd_选项)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/core/management/commands/runserver.py”,第60行,在execute中
super().execute(*args,**选项)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/core/management/base.py”,执行中第364行
输出=self.handle(*args,**选项)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/core/management/commands/runserver.py”,第95行,在handle中
self.run(**选项)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/core/management/commands/runserver.py”,第102行,运行中
自动加载。使用重新加载程序运行(self.internal运行,**选项)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site-packages/django/utils/autoreload.py”,第577行,运行时使用重新加载程序
start_django(重新加载程序、主功能、*args、**kwargs)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第562行,在start\u django中
运行(django_主线程)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第280行,正在运行
self.run_循环()
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第286行,在运行循环中
下一个(股票代码)
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第326行,勾选
对于文件路径,self.snapshot_files()中的mtime:
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第342行,在快照文件中
对于self.wasted_files()中的文件:
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第241行,在监视的文件中
从iter_all_python_模块_文件()获得的收益
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第103行,在iter\u all\u python\u模块文件中
返回iter_模块和_文件(模块、冻结集(_错误_文件))
文件“/Users/mydir/.virtualenvs/myproject/lib/python3.6/site packages/django/utils/autoreload.py”,第132行,在iter\u模块和\u文件中
results.add(path.resolve().absolute())
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/pathlib.py”,第1122行,解析为
s=自我。_味道。解析(自我,严格=严格)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/pathlib.py”,第349行,解析为
返回解析(基本、str(路径))或sep
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/pathlib.py”,第331行,在
target=accessor.readlink(newpath)
readlink中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/pathlib.py”,第443行
返回os.readlink(路径)
ValueError:嵌入的空字节

这是我的mysql设置

 DATABASES = {
       'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'novoair',
         'USER': 'root',
         'PASSWORD': 'root@123',
         'HOST': 'localhost',
         'PORT': '3306',
     },
 }

根据

将用户名密码主机端口设置为您的主机端口,我也有同样的问题,调试它似乎是由于在v2.2.0中引入watchman导致的,因为降级到v1.9.0会删除它

奇怪的是,有时服务器会启动,似乎不是每次都会发生错误,但我相当确定这是由于虚拟环境造成的

修复:

禁用重新加载(不理想)

创建看守配置并忽略venv

但是我不能让你的工作

Django机票


也许有帮助:@mehdi谢谢,但这并没有解决问题。谢谢,我复制并使用了它,但没有任何更改。谢谢评论!这是正确的答案。你完全正确,这不是每次都会发生--诺雷罗德的作品很棒。
 DATABASES = {
       'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'novoair',
         'USER': 'root',
         'PASSWORD': 'root@123',
         'HOST': 'localhost',
         'PORT': '3306',
     },
 }
python manage.py runserver --noreload