找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3457|回复: 9

[求助] urllib 就在鼻子底下,但就是找不到!!

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp 发表于 2017-6-19 23:16:55 | 显示全部楼层 |阅读模式
我是 win7 64,  用 c# 做界面,调用 ironPython。
IronPython 的代码如下:
import urllib
def check1():
response = urllib.urlopen('http://music.baidu.com')
html = response.read()
return html


我另外还安装了 miniConda(anaConda 的轻量级版本),在 cmd 窗口可以看到安装成功:
C:\Users\Administrator>python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v
.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

现在问题来了:每次都是报 No module named urllib。我也尝试过改为 urllib2,还是同样的错误。似乎 IronPython 根本就不知道 miniConda 的存在。
我的 miniConda 确实是在 IronPython 之后安装的,但是既然 miniConda 安装成功了,那系统变量里也应该有它的路径,IronPython 怎么会找不到呢?而且,我在  miniConda 的 Lib 目录下,也确实看到了 urllib。它明明就在那里, IronPython 怎么就是没法 import 呢???
还请高人明示,谢谢!

回复

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp  楼主| 发表于 2017-6-19 23:21:03 | 显示全部楼层
搞到方法了,如下:
Python code
?
1
2
3
4
import sys  #导入sys module;
sys.path.append("c:/Python24/Lib")   #增加搜索路径,也就是说当import某个module的时候,将会到已有的搜索路径中查找;
import random  #导入CPython中名为random的module;
random.__doc__   #显示模块的document;
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp  楼主| 发表于 2017-6-19 23:34:05 | 显示全部楼层
按照二楼的办法,找到urllib 了,但是新问题又出现。现在的 py 代码如下:
import sys
sys.path.append("c:\ProgramData\Miniconda3\Lib")
import urllib.request
def check1():
        resu = urllib.request.urlopen('http://www.baidu.com')
        html = resu.read(300)
        return html
运行时报错:unexpected token ','
请问有哪里不对呢?再说我这里根本就没有这个 “,” 符号啊!
回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-6-20 17:39:15 | 显示全部楼层
怀疑这句能正确执行
sys.path.append("c:\ProgramData\Miniconda3\Lib")

改为
sys.path.append(r"c:\ProgramData\Miniconda3\Lib")
python3.4.4, win10
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp  楼主| 发表于 2017-6-21 07:15:14 | 显示全部楼层
whydo1 发表于 2017-6-20 17:39
怀疑这句能正确执行
sys.path.append("c:\ProgramData\Miniconda3\Lib")

谢谢。我试过 r 了,没有用。我也试过把 \ 改为 \\,也没用。
应该不是 check1 里的问题,还是 import 时出错了。
另外我又尝试了在 check1 里直接返回 sys.pah,发现 c:\ProgramData\Miniconda3\Lib 确实是加进去了的。
我检查了自己的 c:\ProgramData\Miniconda3\Lib 目录,发现这个目录下只有一个 urllib 目录,而该目录下倒是有 request.py 文件。不知道我的 MiniConda 是否安装对了呢?

回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-6-21 21:40:34 | 显示全部楼层
实在找不到问题的时候,可以把request.py复制到自己的程序目录下,直接调用
python3.4.4, win10
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp  楼主| 发表于 2017-6-22 16:06:40 | 显示全部楼层
whydo1 发表于 2017-6-21 21:40
实在找不到问题的时候,可以把request.py复制到自己的程序目录下,直接调用

我就怕 request 又要调别的东西,所以搭建好环境还是很重要的。
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp  楼主| 发表于 2017-6-22 16:07:15 | 显示全部楼层
whydo1 发表于 2017-6-21 21:40
实在找不到问题的时候,可以把request.py复制到自己的程序目录下,直接调用

我就怕 request 又要调别的东西,所以搭建好环境还是很重要的。
回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-6-23 21:35:50 | 显示全部楼层
没用过miniconda, 按说模块应该安装在python目录下
python3.4.4, win10
回复 支持 反对

使用道具 举报

2

主题

8

帖子

8

积分

贫民

积分
8
wugamp  楼主| 发表于 2017-6-24 19:44:01 | 显示全部楼层
用这样的 py 代码,倒是能够运行了:
import sys
import clr
from System import *
from System.IO import *
from System.Text import *
from System.Net import *
clr.AddReference('System.Web')
from System.Web import *

def getVS():
  wc = WebClient()
  bytes = wc.DownloadData('http://www.baidu.com')
  html = Encoding.ASCII.GetString(bytes)
  return html

但它用的不是 urllib,好像是 C 语言里的东西,所以这样的 py 代码也失去意义了吧?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表