2016-05-19 4 views
1

Поэтому, когда я использую мой винтик я получаю ошибку «Неожиданный отступов» ..Непредвиденная ошибка Отступ Python

Я пытался исправить это на некоторое время теперь, но это все равно не похоже на работу ..

Код:

@commands.command(pass_context=True) 
async def magik(self, ctx, url, url2=None): 
"""Apply magik to Image(s)\n .magik image_url or .magik image_url image_url_2""" 
try: 
    print(url) 
    extensions = ['.png', '.jpg', '.jpeg', '.JPG', '.PNG', '.JPEG'] 
    if any(x in url for x in extensions) and url2 is None: 
     await self.bot.say("ok, applying magik") 
     with aiohttp.ClientSession() as session: 
      location = '/root/discord/files/magik.jpg' 
      async with session.get(url) as resp: 
       data = await resp.read() 
       with open(location, "wb") as f: 
        f.write(data) 
    elif url2 is not None and any(x in url2 for x in extensions): 
     await self.bot.say("ok, applying magik") 
     with aiohttp.ClientSession() as session: 
      location = '/root/discord/files/magik.jpg' 
      location2 = '/root/discord/files/magik2.jpg' 
      async with session.get(url) as resp: 
       data = await resp.read() 
       with open(location, "wb") as f: 
        f.write(data) 
      async with session.get(url2) as resp: 
       data = await resp.read() 
       with open(location2, "wb") as f: 
        f.write(data) 
    else: 
     await self.bot.say("Not an image!") 
     return 
    exif = {} 
    image = wand.image.Image(filename='/root/discord/files/magik.jpg') 
    exif.update((k[5:], v) for k, v in image.metadata.items() 
     if k.startswith('exif:')) 
    if url2 is not None: 
     exif2 = {} 
     image2 = wand.image.Image(filename='/root/discord/files/magik2.jpg') 
     exif2.update((k[5:], v) for k, v in image2.metadata.items() 
      if k.startswith('exif:')) 
    img = wand.image.Image(filename='/root/discord/files/magik.jpg') 
    print(img.size) 
    i = img.clone() 
    r = random.randint(1,4) 
    if url2 is not None: 
     with wand.image.Image(filename='/root/discord/files/magik2.jpg') as B: 
      B.clone() 
      B.liquid_rescale(width=int(B.width*0.5), height=int(B.height*0.5), delta_x=1, rigidity=0) 
      B.liquid_rescale(width=int(B.width*1.5), height=int(B.height*1.5), delta_x=2, rigidity=0) 

      with wand.image.Image(filename='/root/discord/files/magik.jpg') as A: 
       A.clone() 
       A.transform(resize='800x800>') 
       A.liquid_rescale(width=int(A.width*0.5), height=int(A.height*0.5), delta_x=1, rigidity=0) 
       A.liquid_rescale(width=int(A.width*1.5), height=int(A.height*1.5), delta_x=2, rigidity=0) 
       A.resize(A.width, A.height) 
       A.composite_channel('default_channels', A, 'over', 0, 0) 
       A.composite_channel('default_channels', B, 'over', 0, 0) 
       A.save(filename='/root/discord/files/magik_.png')     
    else: 
     params = random.uniform(0.5, 2) 
     i.transform(resize='800x800>') 
     i.liquid_rescale(width=int(i.width*0.5), height=int(i.height*0.5), delta_x=1, rigidity=0) 
     i.liquid_rescale(width=int(i.width*1.5), height=int(i.height*1.5), delta_x=2, rigidity=0) 
     i.resize(i.width, i.height) 
     # i.rotate(90 * r) 
     # i.negate() 
     i.save(filename='/root/discord/files/magik_.png') 
    print(exif) 
    if len(str(exif)) <= 2000 and url2 is None: 
     await self.bot.say("Exif Data: ```{0}```".format(str(exif))) 
    elif url2 is not None and len(str(exif)) <= 2000 and len(str(exif2)) <= 2000: 
     await self.bot.say("Exif Data Image 1: ```{0}```".format(str(exif))) 
     await self.bot.say("Exif Data Image 2: ```{0}```".format(str(exif2))) 
    else: 
     await self.bot.say("Exif Data too long, truncated") 
    await self.bot.send_file(ctx.message.channel, '/root/discord/files/magik_.png') 
except Exception as e: 
    await self.bot.say(code.format(type(e).__name__ + ': ' + str(e))) 

Помощь ценится как я не могу показаться, чтобы исправить эту ошибку.

+0

Кажется, что отступ снова сломался, когда вы вставили синтаксис SO. Пожалуйста, возьмите правые четыре пробела вправо, иначе это сложно. – jotrocken

+0

Пробовали ли вы отступать и постоянно переписывать все свои строки кода? Иногда это сработало для меня, в основном, когда я копировал код из текстового редактора в другой. – Jacquot

+0

Ошибка, которую я часто встречал, - это смешение таблиц и «4 пробелов» в углублениях из-за использования разных редакторов. У вашего редактора может быть возможность исправить его, или вы можете выбрать истинную табуляцию и заменить все на 4 пробела. – Vince

ответ

0

Вероятно, это проблема использования смешанных вкладок и пробелов. В зависимости от используемого редактора вам, возможно, придется перейти к настройкам вашего редактора и установить средства для настройки «вкладок в виде пробелов».

Смежные вопросы