错误环境
使用Django框架创建完models类的之后,用python manage.py migrate命令来生成数据库表的时候出错
错误代码
Operations to perform: Apply all migrations: SMS, admin, auth, contenttypes, sessions Running migrations: Running migrations: Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "C:python35libsite-packagesdjangocoremanagement\__init__.py", line 364, in execute_from_command_line utility.execute() File "C:python35libsite-packagesdjangocoremanagement\__init__.py", line 356, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:python35libsite-packagesdjangocoremanagementase.py", line 283, in run_from_argv self.execute(*args, **cmd_options) self.execute(*args, **cmd_options) File "C:python35libsite-packagesdjangocoremanagementase.py", line 330, in execute output = self.handle(*args, **options) File "C:python35libsite-packagesdjangocoremanagementcommandsmigrate.py", line 177, in handle self.stdout.write(self.style.MIGRATE_HEADING("Running migrations:")) File "C:python35libsite-packagesdjangocoremanagementase.py", line 110, in write self._out.write(force_str(style_func(msg))) OSError: raw write() returned invalid length 42 (should have been between 0 and 21)
错误原因
与win10系统、版本有关系
可能是unicode字符的返回值问题
解决办法
可以使用pip install win_unicode_console
安装win_unicode_console,在代码文件中添加以下两行代码解决:
import win_unicode_console win_unicode_console.enable()