在Python 3.6.4中使用Urllib下载图像

时间:2018-12-30 16:46:52

标签: python python-3.x urllib

我运行了以下代码,以使用urllib模块下载图像。但是我最终遇到了以下一些错误。

import urllib.request
import random

def downloader(image_url):    
    file_name = random.randrange(1,10000)    
    full_file_name = str(file_name) + '.jpg'    
    urllib.request.urlretrieve(image_url, full_file_name)    
    url = input("URL ")   
    downloader(url)

错误消息:

  

文件“ img_down.py”,第1行,在       导入urllib.request文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ urllib \ request.py”,   第88行,在       导入http.client文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ http \ client.py”,   第71行,在       导入email.parser文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ email \ parser.py”,   第12行       从email.feedparser导入FeedParser,BytesFeedParser文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ email \ feedparser.py”中,   第27行,在       从email._policybase导入compat32文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ email_policybase.py”,   第7行       从电子邮件导入头文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ email \ header.py”中,   第16行       导入email.quoprimime文件“ C:\ Users \ shekh \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ email \ quoprimime.py”,   第44行       从字符串导入ascii_letters,数字,十六进制ImportError:无法导入名称“ ascii_letters”

1 个答案:

答案 0 :(得分:1)

当前目录中应该有一个名为string.py的文件,重命名应该可以解决问题。

从文档中

  

导入名为垃圾邮件的模块时,解释器将搜索   在当前目录中,然后在列表中,命名为spam.py的文件   由环境变量PYTHONPATH指定的目录。这有   与shell变量PATH相同的语法,即   目录名称

因此,当您的一个依赖项尝试导入字符串时,程序首先在当前目录中查找,然后在PYTHONPATH中查找