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

目录

问题背景:

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


问题背景:

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

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

python manage.py inspectdb > models.py

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

python manage.py makemigrations

然后就报错了:

ValueError: source code string cannot contain null bytes

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修改编码

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

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

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

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

因为python manage.py inspectdb > models.py 生成的models.py文件不是utf-8的格式,就算在一行设置或者整个项目设置也无效的。

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

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

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

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒笑翻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值