【问题标题】:How do I solve this urllib2.URLError: <urlopen error [Errno 10013]?如何解决此 urllib2.URLError: <urlopen 错误 [Errno 10013]?
【发布时间】:2016-03-13 16:37:39
【问题描述】:

我在 Windows 8 上,安装了 Anaconda Python 2.7.11。 这是我的python代码:

import urllib2
url = "http://real-chart.finance.yahoo.com/table.csv?s=GOOG&ignore=.csv"
response = urllib2.urlopen(url)
data = response.read()
read = csv.DictReader(data)

我刚刚在其他地方找到了这段代码并复制了它(并用我自己的网址替换了它)。

我得到了这个错误跟踪:

Traceback (most recent call last):
  File "01_get_traindata.py", line 25, in <module>
    response = urllib2.urlopen(url)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 449, in _open
    '_open', req)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 1227, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 10013] An attempt was made to access a s
ocket in a way forbidden by its access permissions>

我在其他地方读到它可能需要做一些防火墙,所以我禁用了我的防火墙,它仍在发生。

我尝试过的事情: 将 python.exe 设置为以管理员身份运行(在提示以管理员身份运行后,我在命令窗口中收到“拒绝访问。”) 我的防火墙中已经允许 python.exe (仍然不起作用)。 甚至完全关闭防火墙(仍然不起作用)。 我检查了,我的帐户也已经是管理员了。

更新:在我重新启动计算机后解决。 我仍然关闭了防火墙并允许 python.exe 通过我的防火墙。 也许需要重新启动。 奇怪。

【问题讨论】:

    标签: python csv urllib2 anaconda


    【解决方案1】:

    不确定您要做什么,但请尝试:

    import urllib
    urllib.urlretrieve ("http://real-chart.finance.yahoo.com/table.csv?s=GOOG&ignore=.csv", "csv.csv")
    

    这可以工作并将文件保存在本地。

    然后尝试在您的计算机上处​​理您的文件?

    【讨论】:

    • 我也在其他地方找到了这段代码,并且发生了同样的错误。更新:奇怪的是我复制了你的代码,现在它可以工作了我想知道这次我做了什么不同
    • 终于成功了!我很高兴你把它整理好了。
    【解决方案2】:

    您的代码在 Win10、CPython 上适用于我。由于您在非特权模式下运行脚本,可能会出现问题。见:

    https://stackoverflow.com/a/2779304/1113207

    所以你可以尝试以管理员身份运行 python 解释器或/和禁用 UAC。

    其他可能的原因是本地防火墙阻止了连接:

    https://stackoverflow.com/a/6806143/1113207

    尝试禁用它,看看是否有问题。

    【讨论】:

    • 禁用的防火墙,它仍然在发生......通过第一个链接,我不确定解决方案是什么,我如何为我的 python.exe 授予管理员权限?
    • @TinTran,我会尝试以下 1) 以管理员身份运行解释器 (python.exe):cnet.com/how-to/… 2) 禁用 UAC:articulate.com/support/storyline/…
    • @TinTran 3) 也尝试禁用您的防病毒软件 :)
    • 假设我选择右键单击 python.exe 并以管理员身份运行我如何让它在运行 python 时运行 .py 文件...对不起我只习惯运行“python.exe myfile.py”的执行方式
    • @TinTran 我也不知道。如何在解释器文件的属性中设置复选框“以管理员身份运行”? (参见上面 cnet.com 上的链接)在这种情况下,解释器每次都会以管理员身份运行。
    猜你喜欢
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多