目录

问题背景:

解决办法很简单:如下--


问题背景:

拌了我差不多一天的问题。。。。。。

像往常一样,我想生成迁移文件,然后我运行按之前的操作执行命令,

python manage.py inspectdb > models.py

 像所说的我把这个生成的models.py文件直接放到**App下,然后执行如下命令

python manage.py makemigrations

然后就报错了:

ValueError: source code string cannot contain null bytes

python manage.py makemigrations ValueError: source code string cannot contain null bytes_Python

PS E:\WorkSpace\SNHASys> python manage.py inspectdb > models.py
PS E:\WorkSpace\SNHASys> python manage.py makemigrations
Traceback (most recent call last):
  File "E:\WorkSpace\SNHASys\manage.py", line 21, in <module>
    main()
  File "E:\WorkSpace\SNHASys\manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "C:\Programs\Python\Python310\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "C:\Programs\Python\Python310\lib\site-packages\django\core\management\__init__.py", line 377, in execute
    django.setup()
  File "C:\Programs\Python\Python310\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Programs\Python\Python310\lib\site-packages\django\apps\registry.py", line 116, in populate
    app_config.import_models()
  File "C:\Programs\Python\Python310\lib\site-packages\django\apps\config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 879, in exec_module
  File "<frozen importlib._bootstrap_external>", line 1017, in get_code
  File "<frozen importlib._bootstrap_external>", line 947, in source_to_code
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
ValueError: source code string cannot contain null bytes

我思前想后,来来回回折腾,我发现当我没有生成这个文件或者这个生成的文件不在项目里面的时候,是不会出现报错的。总之结论就是这个文件的问题。

一开始我问chatGPT,他告诉我是编码的问题,让我去pycharm-settings-editor-file encodings修改编码

python manage.py makemigrations ValueError: source code string cannot contain null bytes_pycharm_02

也有说是编码问题,然后在models.py文件的第一行设置文件格式 ,还是不行!

#!/usr/bin/python
# -*- coding: UTF-8 -*-

然后查看很多人的总结,说是删掉数据库,重新新建,然后我尝试了,还是不行。然后我新建项目,再重新链接数据进行一样的操作还是不行。

总之走了很多弯路,后来,想起文件编码格式的问题吧

因为python manage.py inspectdb > models.py

解决办法很简单:如下--

把models.py文件在NotePad++中打开,并改为utf-8的格式,再重新保存。

或者 把models.py的内容全部复制到NotePad++中新建文件打开再保存再把这个文件去覆盖项目中的models.py,然后就可以了。

python manage.py makemigrations ValueError: source code string cannot contain null bytes_python_03