2017-08-04 3 views
2

Ich nahm ein Beispielcode, der in der Django-Version 1.8.4 gemacht wurde, und wie Python 2.7 bei der Übertragung auf 3 Python alle weggeflogen und einen solchen Fehler produziert, wie man es beheben?ImportError: kann den Namen 'StringType' nicht importieren

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

ein Stück Code, in dem unter Verwendung von String (config.py) (in site-packages)

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

könnten Sie Ihren Code vielleicht bereitstellen? Vielen Dank! –

+0

hast du gesehen, wo er sich befindet? – InvictusManeoBart

+1

Eigentlich müssen Sie wahrscheinlich Ihren Code ändern (Portierung auf Python 3). Um Ihnen zu helfen: https://docs.python.org/3/howto/pyporting.html – iFlo

Antwort

4

Es gibt keine StringType in Python3.

Versuchen Sie stattdessen:

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

den Typ eines Objekts Verwendung zu prüfen:

type(x) is str 

das gibt: True im gegebenen Fall.


Auch Sie Code ändern, wie in der Frage Kommentaren von IFLO vorgeschlagen: https://docs.python.org/3/howto/pyporting.html

+0

yep das ist Arbeit, aber was ist mit UnicodeType, wie zu beheben? – InvictusManeoBart

+0

Da es keine "Rückwärtskompatibilität" einiger Python-Bibliotheken gibt, sollten Sie Ihren Code umgestalten. Bitte lesen Sie den vorgeschlagenen Link, der Ihnen helfen könnte. Ich versuche auch, etwas relevantes dieses spezifische Problem zu finden :) – ABcDexter

+1

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

0

StringType in Python 3 veraltet ist, UnicodeType ist nicht mehr verfügbar, wie es jetzt der Einbau-str von python3 ist.

Verwandte Themen