最近身边的人或多或少都知道一点python,自己也想动手试试吧。按照网上的教程,安装了python,Eclipse插件pydev。接下来就是在Eclipse下新建工程,创建py文件这就不多说了。

第一个文件写点什么东西呢?helloworld还是算了,有点高级些的东西吗,听说python代码比较简洁。想了想还是请求url, 用过 java的朋友都知道相对比较繁琐,创建URL、HttpURLConnection对象,设置请求方式等。

自己也不懂python的语法,不知道如何下手,还是从网上直接copy一段吧

import urllib2

response = urllib2.urlopen('http://www.baidu.com')
html = response.read()
print (html)

好简单啊,当保存时编译器提示:Undefined variable from import: urlopen。将代码直接copy到cmd窗口下执行没有任何问题,排除了python版本或代码自身的问题,难道pydev插件有问题?urllib2应该找到了,怎么就没有urlopen呢?

在Python的安装目录下找到/Lib/urlib2.py发现是有urlopen定义的,那就很奇怪了。难道还有别的urllib2????这时候恍然大悟,原来在IDE下我把文件名称保存为了,urllib2.py。这就导致import引用的是当前文件,而当前文件里是没有定义urlopen方法的。

知道了错的地方就改掉自己定义的文件名称吧,改成了urllib2Test.py这下应该没问题了吧。果然编译器没有报错。心里暗自高兴

当在IDE环境下执行时,依然提示:AttributeError: 'module' object has no attribute 'urlopen',编译通过了,为什么执行会有问题呢?难道是执行先前编译的文件?到Python的安装目录下找到/Lib/urlib2.pyc将其删除重新编译执行,依然还是错误。

这下纳闷了,在仔细看一下错误信息:

怎么会有D:\Source\Workspace\spider\urllib2.py这个路径,安装python的目录不在这里,刚刚已经重名了这个文件的,理论应该不在存在这个文件了。

打开对应的目录,确实不存在D:\Source\Workspace\spider\urllib2.py,但却存在编译的字节码文件D:\Source\Workspace\spider\urllib2.pyc。看来执行的时候不是执行的安装包下的编译文件,而是执行重命名之前的编译字节码文件。

果断将这个原来编译产生的文件删除,重新在IDE环境下执行。成功了!!

总结

1.python引用规则不熟悉,导致引用冲突:import当前文件所在目录优先级高于安装目录。

2.可能是pydev插件的问题,当前文件有编译后的引用文件。当文件不存在了,不会再进行编译,而执行的时候依然执行了用到引用的文件首先在当前目录下查找引用的编译文件,如果有就直接使用导致错误

最新文章

  1. 自动判断应该Ajax还是return
  2. JavaScript数组的一些方法集合
  3. Head First 设计模式 --3 装饰者模式 开闭原则
  4. Diskpart使用说明
  5. 《剑指offer》— JavaScript(1)二维数组中的查找
  6. Ubuntu中使用iptables
  7. Zabbix (三)
  8. 课程存储校对:程序设计思想、源程序代码、运行结果截图,以及开发过程中的项目计划日志、时间记录日志、缺陷记录日志(PSP0级记录)。
  9. 记mysql中时间相关的一个奇怪问题
  10. Ant打包可运行的Jar包(加入第三方jar包)
  11. web前端----JavaScript对象
  12. yii2框架2 (二)项目结构
  13. SQL语法 之 表连接
  14. CSS Link(链接)
  15. 部署coredns
  16. Differences Between 3 Types Of Proxy Servers: Normal, Transparent And Reverse Proxy
  17. pageadmin自助建站 网站目录权限的设置方法
  18. could not read data from '/Users/lelight/Desktop/ViewControllerLife/ViewControllerLife/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
  19. 微信小程序生成带参二维码
  20. API函数的学习与运用

热门文章

  1. python object类
  2. Linux usleep for shell
  3. 【剑指offer】第一个只出现一次的字符
  4. 如何写一个LaTeX类文件,并设计你自己的简历
  5. Android HOOK工具Cydia Substrate使用详解
  6. 日志组件logback的介绍及配置使用方法(二)
  7. Java并发--Thread类详情
  8. 《DSP using MATLAB 》示例Example6.3
  9. LeetCode 424. Longest Repeating Character Replacement
  10. Python基础之路