从CMD运行Python脚本时出现“ Urlopen错误未知的URL类型”

时间:2019-06-25 16:40:05

标签: python cmd anaconda urllib urlopen

我的目标是从Windows Task Scheduler启动脚本。

但是,我认为调度程序使用CMD启动代码-CMD不想运行我的脚本!

当我从Anaconda提示符或Spyder运行脚本时,脚本会完美启动。在Anaconda提示符下起作用的命令,但在CMD中不起作用,是:C:\Users\ola_k\Anaconda3\envs\myvirtenv\python.exe C:\Users\ola_k\Desktop\myfilewithscript\script.py

当我尝试在CMD中运行上述命令时,很不幸,它为我提供了一个错误

  

urlopen错误未知的URL类型:https。

我尝试从anaconda环境中设置PATH变量。我也尝试过创建.BAT文件,但似乎没有任何作用。

我在stackexhange上阅读了许多有关urlopen错误的文章,但似乎没有一个回答我的问题:为什么我可以从Anaconda提示符和Spyder中运行它,却不能与CMD一起运行?尤其是因为我已将从anaconda安装的python设置为路径变量。

这是我脚本的摘录:

import smtplib 
from email.mime.text import MIMEText 
from bs4 import BeautifulSoup as soup
from urllib.request import Request, urlopen
import time
from datetime import date, timedelta
import re


CPV = "73000000" 
req = "https://doffin.no/Notice?query=&PageNumber=1&PageSize=100&OrderingType=0&OrderingDirection=1&RegionId=&CountyId=&MunicipalityId=&IsAdvancedSearch=false&location=&NoticeType=&PublicationType=&IncludeExpired=false&Cpvs="+CPV+"&EpsReferenceNr=&DeadlineFromDate=&DeadlineToDate=&PublishedFromDate=&PublishedToDate="

urlRequest = []
urlRequest.append(Request(req, headers={"User-Agent": "Mozilla/5.0"}))
webpage = urlopen(urlRequest[0]).read() 
page_soup = soup(webpage, "html.parser")

当我从Spyder或Anaconda提示符下运行该代码时,它确实可以工作,所以我认为代码本身很好。

注意:如果还有其他解决方案,例如如何从任务计划程序运行Anaconda Prompt,这也可以解决我的问题。

1 个答案:

答案 0 :(得分:0)

我通过重新安装Anaconda3并将其直接从选件添加到我的路径中来解决了这个问题(即使不建议这样做)。