Запросы, не определенные после импорта из файла

#python #python-3.x

#python #python-3.x

Вопрос:

Я импортировал файл image_function.py в свой ноутбук. Однако, когда я попытался использовать одну из функций im_reverse , она выдала мне ошибку.

Код:

 import image_function
image_function.im_reverse("https://allhdwallpapers.com/wp-content/uploads/2015/05/sunset-8.jpg", reverse = 'horizontal', url = True)
  

Ошибка:

 ---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-61-afc744ac8a12> in <module>()
      1 import image_function
----> 2 image_function.im_reverse("https://allhdwallpapers.com/wp-content/uploads/2015/05/sunset-8.jpg", reverse = 'horizontal', url = True)

/content/image_function.py in im_reverse(image_path, reverse, url)
     45           mat_image_column_reverse[c][i] = mat_image_reverse[j][i]
     46           c  = 1
---> 47 
     48       plt.axis('off')
     49 
NameError: name 'requests' is not defined
  

Ошибка произошла до того, как она достигла кода для реверсирования по вертикали, который находится ниже.

Что внутри image_function:

 #libraries:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import imshow
from PIL import Image
import copy
import requests
from io import BytesIO
  

Это код после ошибки:

 def im_reverse(image_path, reverse = 'horizontal', url = True):
  if url == True:
    response = requests.get(image_path)
    with Image.open(BytesIO(response.content)) as image:
      mat_image = np.array(image, dtype=int)
      m, n, depth = mat_image.shape

    if reverse == 'horizontal':
      mat_image_reverse = copy.deepcopy(mat_image)
      mat_image_rows_reverse = copy.deepcopy(mat_image)
      
      for i in range(m):
        c = 0
        for j in range(n-1,-1,-1):
          mat_image_rows_reverse[i][c] = mat_image_reverse[i][j]
          c  = 1
      
      plt.axis('off')
      return imshow(mat_image_rows_reverse) 
  

Я перепробовал много решений в Интернете. Однако я не вижу ничего плохого. Я также пробовал преднамеренное from requests import get или !pip install requests , и оно все равно не сработало.

Может кто-нибудь, пожалуйста, предложить решение. Спасибо

Комментарии:

1. Можем ли мы увидеть строку, в которой возникает эта ошибка?

2. Пожалуйста, обновите вопрос, чтобы включить полное сообщение об ошибке, а не только последнюю строку ошибки.

3. Сэр @JohnGordon, я отредактировал его

4. Это странное сообщение обратной трассировки.. стрелка указывает на строку 47, которая пуста. Можете ли вы проверить, есть ли у вас старая версия image_function.pyc в этом каталоге, и если да, удалите ее?

5. о да, спасибо, у меня есть старая версия. Теперь это работает

Ответ №1:

Похоже, вам нужно установить запросы:

 python3 -m pip install requests
  

Комментарии:

1. Если бы это было причиной, то это было бы an ImportError , а не a NameError .