我在Windows 10上使用Python 3.6.3。
我使用以下代码创建了一个.py文件:
invalid use of incomplete type ‘class B<int>’
并用python IDLE打开它。按完F5(运行模块)后,我得到了这个:
令我困惑的是,如果我将两行代码直接写入Python shell,我可以得到所需的结果,如你所见:
第一张图片中的错误消息显示我创建了另一个.py文件(E:\ py \ http.py)。这是另一个我不理解的地方,因为这个文件似乎与import urllib.request
urllib.request.urlopen('https://github.com').read().decode('utf-8')
没有任何关系。
relaceSpy.py
中的代码如下:
http.py
如果我删除def get_page(url):
import requests
proxies = {
"http": "http://127.0.0.1:2012",
"https": "https://127.0.0.1:2012",
}
r=requests.get(url, proxies=proxies)
return r.text
get_page('https://youtube.com')
然后在IDLE中打开并运行http.py
,我什么都得不到:
答案 0 :(得分:1)
我找到了原因。如果我更改以下代码行
urllib.request.urlopen('https://github.com').read().decode('utf-8')
为:
print (urllib.request.urlopen('https://github.com').read().decode('utf-8'))
(即添加print
)然后运行脚本,我会得到我想要的。
但我不明白为什么会这样。
答案 1 :(得分:0)
您的IDE可能使用与shell不同的设置和环境。检查IDE中的python版本,软件包版本和自定义环境设置。
答案 2 :(得分:0)
这是因为您拥有指定包的标识。换句话说,您创建的文件名称可能是http,即使用urllib.request。只需搜索并替换名称