2017-08-04 16 views
2

djangoバージョン1.8.4で作成されたいくつかのサンプルコードを取り出し、Python 2.7を3 pythonに転送したときに飛んでしまい、そのようなエラーが発生しました。コードのImportError:名前 'StringType'をインポートできません

\lib\site-packages\config.py", line 91, in <module> 
     from types import StringType, UnicodeType 
    ImportError: cannot import name 'StringType' 

ワンピース(サイト・パッケージで)stringtype(config.py)を使用して

def writeValue(self, value, stream, indent): 
     if isinstance(self, Mapping): 
      indstr = ' ' 
     else: 
      indstr = indent * ' ' 
     if isinstance(value, Reference) or isinstance(value, Expression): 
      stream.write('%s%r%s' % (indstr, value, NEWLINE)) 
     else: 
      if (type(value) is StringType): # and not isWord(value): 
       value = repr(value) 
      stream.write('%s%s%s' % (indstr, value, NEWLINE)) 
+0

あなたのコードは多分提供できますか?ありがとう! –

+0

彼はどこにいるのですか? – InvictusManeoBart

+1

実際には、コードを変更する必要があります(Python 3に移植する必要があります)。あなたを助けるために:https://docs.python.org/3/howto/pyporting.html – iFlo

答えて

4

のpython3にはStringTypeはありません。

代わりにこれを試してみてください:

from types import * 
x=type('String') 

は、オブジェクト使用の種類を確認するには:与え

type(x) is str 

True与えられた場合を。 IFLOで質問コメントで示唆したよう


また、あなたのコードを変更:それはだとしてhttps://docs.python.org/3/howto/pyporting.html

+0

うーん、それは仕事ですが、どのようにUnicodeTypeを修正するのですか? – InvictusManeoBart

+0

Pythonライブラリの「下位互換性」がないため、コードをリファクタリングする必要があります。どのリンクが参考になるのかをお読みください。私はまた、この特定の問題に関連するものを見つけることを試みています:) – ABcDexter

+1

tnx !!!!!!!!!!!!!! – InvictusManeoBart

0

StringTypeは、Python 3で廃止され、UnicodeTypeはもう使用できないビルトインのpython3からstr今。

関連する問題