2012-10-03 52 views
1

我想dumpdata成一个文件,并不断收到此错误:Django的dumpdata不写入文件,产生“错误的文件描述符”错误

d:\django\mysite>manage.py dumpdata > alldata.json 
Traceback (most recent call last): 
    File "D:\django\mysite\manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python27\lib\site-packages\django\core\management\base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "C:\Python27\lib\site-packages\django\core\management\base.py", line 241, in execute 
    self.stdout.write(output) 
IOError: [Errno 9] Bad file descriptor 

我有一种感觉,这有东西使用代码页或unicode。 尝试在PowerShell中执行此操作,并且没有错误,但数据已打印到屏幕上,并且文件是空的......(如果>符号不存在)。

任何人有任何想法可能会导致此?

感谢提前:)

+0

你'坏文件descriptor'消息从Python代码来了,所以才出现它之前或者是输出设置过程中遇到的错误。如果'> alldata.json'出现问题,您会看到错误来自shell。我建议你尝试运行命令而不用'>来查看发生错误的位置。 – akraut

+0

谢谢。使用>重定向运行不会导致任何错误。数据只是简单地打印在屏幕上。请参阅下面的答案,这与在命令提示符处直接执行脚本有关。 –

回答

3

如果我没看错,你正在使用

manage.py dumpdata 

尝试使用它像这样

python manage.py dumpdata 

它应该工作。

感谢

+0

谢谢!这就是诀窍! 你能解释两种方法的区别吗? –

+1

@MotiRadomski它的简单,在文件名前使用python命令意味着使用python解释器执行它。 Django是一个用python编写的框架。 –

+0

谢谢。当然,但运行c:\> myscript.py和c:\> python myscript.py之间有什么区别?在我的win注册表中,我看到.py文件被注册到python.exe呢......奇怪的东西:) –

相关问题