2017-08-02 7 views
0

現在、django 1.3から1.8へのアップグレードを進めています。私は私のアプリをUbuntu(Ubuntu 16.04)で作業させていますが、Windows版では問題が発生しています。WindowsでカスタムDjango管理コマンドが破損しました

私はWindows上で私のカスタム管理コマンドを実行すると、以下のエラーが生成されます。私は、問題の原因を突き止めるために管理している

Traceback (most recent call last): 
    File "D:\src\proj\grp\tests\test_list_members.py", line 29, in setUp 
call_command('syncgroups') 
    File "D:\src\env\lib\site-packages\django\core\management\__init__.py", line 103, in call_command 
parser = command.create_parser('', name) 
    File "D:\src\env\lib\site-packages\django\core\management\base.py", line 316, in create_parser 
help='Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output') 
    File "C:\Python27\Lib\optparse.py", line 1018, in add_option 
raise TypeError, "invalid arguments" 
TypeError: invalid arguments 

、上よりも__future__.unicode_literalsの取り扱いは、Windows上で異なっていることが表示されますUbuntu。 Ubuntuの上ではなく、Windows上例えば、次の作品(上記と同じTypeErrorエラーが見られます)

from __future__ import unicode_literals 
from optparse import OptionParser 

OptionParser().add_option('-v', '--verbose') 

これはDjangoの1.8は、もはやWindows上でカスタム管理コマンドをサポートしていることを意味しないのか?

すべての回避策をお待ちしております。

答えて

0

WindowsマシンにインストールされているOptionParserのバージョンが、Unicodeを正しくサポートするように更新されていないという問題がありました。私のpythonインストールを更新するのが最善の解決策でしたが、一時的な回避策も可能でした。 %PYTHONHOME%\ Libの\のoptparse.pyは、この問題を解決するには、以下の変更を行う

...

1006 ... 
1007 def add_option(self, *args, **kwargs): 
1008  """add_option(Option) 
1009   add_option(opt_str, ..., kwarg=val, ...) 
1010  """ 
    +-  if type(args[0]) in types.StringTypes: 
1012   option = self.option_class(*args, **kwargs) 
1013  elif len(args) == 1 and not kwargs: 
1014   option = args[0] 
1015 ... 
関連する問題