免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3287 | 回复: 4
打印 上一主题 下一主题

包和模块 [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-19 11:08 |只看该作者 |正序浏览
模块应该是一个py的源码文件,包应该是带__init__.py文件的目录。

现在情况是我有一个xml目录,其中有__init__.py, lxml.py文件。

在lxml.py中我用from lxml import etree,但这句会报错。ImportError: cannot import name etree

当然我的lxml.py中没有class etree的类或名字

我的问题是它为什么是当前目录的lxml.py呢?为什么不是找系统安装目录中的lxml文件夹中的etree模块呢?

from lxml不应该是从一个包中查找吗?而我自己写的lxml.py只是一个模块啊。

论坛徽章:
0
5 [报告]
发表于 2010-09-19 22:14 |只看该作者
楼上的是对的。

论坛徽章:
0
4 [报告]
发表于 2010-09-19 18:06 |只看该作者
python 默认先找当前py位置的包的吧,所以还是建议换个名字~

PS:本人猜测你打包如果需要系统的lxml包的话也会和现在这个冲突吧

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2010-09-19 14:28 |只看该作者
为什么会冲突呢?我定义的不是一个模块吗?python不是可以按包来的吗?

如果我一定要定义成lxml.py,那有没有别的什么办法呢?

论坛徽章:
0
2 [报告]
发表于 2010-09-19 12:54 |只看该作者
跟你安装的lxml模块冲突了,换一个名字吧。不要叫lxml.py
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP