Python入门——import
最近身边的人或多或少都知道一点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插件的问题,当前文件有编译后的引用文件。当文件不存在了,不会再进行编译,而执行的时候依然执行了用到引用的文件首先在当前目录下查找引用的编译文件,如果有就直接使用导致错误
Python入门——import的更多相关文章
- Python入门-import导入模块功能
1.啥是模块 模块(module):用来实现或者多个功能的Python代码,(包含变量.函数.类),本质就是*.py后缀文件. 包(package):定义了一个由模块和子包组成的Python应用程序执 ...
- python入门简介
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- Python基本语法,python入门到精通[二]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...
- Python学习【第二篇】Python入门
Python入门 Hello World程序 在linux下创建一个叫hello.py,并输入 print("Hello World!") 然后执行命令:python hello. ...
- 老鸟的Python入门教程
转自老鸟的Python入门教程 重要说明 这不是给编程新手准备的教程,如果您入行编程不久,或者还没有使用过1到2门编程语言,请移步!这是有一定编程经验的人准备的.最好是熟知Java或C,懂得命令行,S ...
- Python自动化运维之1、Python入门
Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...
- Python入门-函数的使用到程序的公布安装
Python入门-函数的使用到Python的公布安装 本文主要适合有一定编程经验,至少掌握一门编程语言的人查看. 文中样例大多都是简单到认识英文单词就能看懂的水平,主要讲的是Python的总体使用方法 ...
- python 入门快速学习整理
Python 入门学习 1 : 对象类型 1 1.1 列表 1 1.2 字典 2 1.3 元组 2 1.4 元组 2 1.4 文件 3 2 : 条件和循环语句 3 2.1 if else语句 3 ...
随机推荐
- Android Hook框架Xposed详解
1 Introduction 1.1 概述 Xposed 是 GitHUB 上 rovo89 大大设计的一个针对 Android 平台的动态劫持项目,通过替换 /system/bin/app_pro ...
- Licp - 一个玩具解释器的实现
纸上得来终觉浅,绝知此事要躬行. 最近看了 SICP,其第四章讲述了一个简单的 Scheme 解释器的实现.粗看了一遍后决定自己用 C 语言实现一个残疾的 Scheme 解释器,想来这样的学习效果应该 ...
- erl_0020 《面对软件错误构建可靠的分布式系统》读书笔记001 “面向并发COPL”
在现实世界中,顺序化的(sequential)活动非常罕见.当我们走在大街上的时候,如果只看到一件事情发生的话我们一定会感到不可思议,我们期望碰到许多同时进行的活动. 如果我们不能对同时发生的众多事件 ...
- table中文字过长使用省略号
1.设置table固定布局,否则自适应布局会不受控制 table{ table-layout: fixed; } 2.设定td宽度占比 <table> <col width=&quo ...
- POJ3068 "Shortest" pair of paths 【费用流】
POJ3068 "Shortest" pair of paths Description A chemical company has an unusual shortest pa ...
- CODEVS3013 单词背诵 【Hash】【MAP】
CODEVS3013 单词背诵 题目描述 Description 灵梦有n个单词想要背,但她想通过一篇文章中的一段来记住这些单词. 文章由m个单词构成,她想在文章中找出连续的一段,其中包含最多的她想要 ...
- 理解 Roslyn 中的红绿树(Red-Green Trees)
Roslyn 的 API 是非常易用的.即便如此复杂的 C# 语法,建立的复杂的 C# 语法树,还有其复杂的树遍历和修改过程,也都被其 API 包装得干净简洁. 而这背后是它的重要设计思路 —— 红绿 ...
- IO流-文件夹的拷贝
文件夹的拷贝操作 要求: 完成文件夹的拷贝,包括子目录的拷贝和所有文件的拷贝 分析: 首先,得在目标目录下创建一个与源文件夹名称相同的文件夹 遍历源文件夹中的所有文件对象,判断子文件是目录还是文件 如 ...
- vue 中import和export如何一起使用(一)
前段时间碰到一个问题,vue js中要使用import来加载第三方的js,但是后面使用exports.XXX的话会报exports is not defined.那要怎么解决呢? 首先,我们要了解ES ...
- jsp_include
jsp__include指令先包含后编译 include 行为 先编译后包含 <jsp:include page="head.jsp"></jsp:include ...