У меня есть файл с именем hello.txt в локальном каталоге вдоль стороны test.py, который содержит этот Python 3.4 код:Как преодолеть Python 3.4 NameError: имя «basestring» не определен
import easywebdav
webdav = easywebdav.connect('192.168.1.6', username='myUser', password='myPasswd', protocol='http', port=80)
srcDir = "myDir"
webdav.mkdir(srcDir)
webdav.upload("hello.txt", srcDir)
Когда я запускаю это я получаю это:
Traceback (most recent call last):
File "./test.py", line 196, in <module>
webdav.upload("hello.txt", srcDir)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/easywebdav/client.py", line 153, in upload
if isinstance(local_path_or_fileobj, basestring):
NameError: name 'basestring' is not defined
погуглить это приводит несколько хитов, все из которых point в таком же положении, которое, в случае пути переехал в будущем, будет включать «сразу после импорта во ":
try:
unicode = unicode
except NameError:
# 'unicode' is undefined, must be Python 3
str = str
unicode = str
bytes = bytes
basestring = (str,bytes)
else:
# 'unicode' exists, must be Python 2
str = str
unicode = unicode
bytes = str
basestring = basestring
Я не использовал типы импорта, но включить его или нет, похоже, не имеет значения в PyDev - я получаю ошибку в любом случае. Линия, которая вызывает ошибку:
unicode = unicode
говоря, «неопределенная переменная».
ОК, мои знания python колеблются в этот момент, и я искал похожие сообщения на этом сайте и не нашел достаточно одного достаточно для basestring, который я понимаю, чтобы помочь. Я знаю, что мне нужно указать basestring, но я не знаю, как это сделать. Кто-нибудь будет достаточно благотворительным, чтобы указать мне в правильном направлении?
Какую версию 'easywebdav' вы используете? – ooga
easywebdav 1.2.0 – volvox