我运行了以下代码,以使用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”
答案 0 :(得分:1)
当前目录中应该有一个名为string.py的文件,重命名应该可以解决问题。
从文档中
导入名为垃圾邮件的模块时,解释器将搜索 在当前目录中,然后在列表中,命名为spam.py的文件 由环境变量PYTHONPATH指定的目录。这有 与shell变量PATH相同的语法,即 目录名称
因此,当您的一个依赖项尝试导入字符串时,程序首先在当前目录中查找,然后在PYTHONPATH中查找