python导入xlutils时遇到的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python导入xlutils时遇到的问题相关的知识,希望对你有一定的参考价值。
在使用xlutils模块下的copy时,遇到个疑惑
使用import xlutils 然后后面调用xlutils.copy() 或者xlutils.copy.copy()时报错,没有copy这个属性
但是使用from xlutils.copy import copy 后面调用copy()就能成功
为什么?谁能帮我解答
你可以用dir命令看看允许访问的方法,
>>> import xlutils>>> dir(xlutils)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
>>>
>>> from xlutils.copy import *
>>> dir(xlutils.copy)
['XLRDReader', 'XLWTWriter', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'copy', 'process']
>>>
单纯 import xlutils,没有copy方法让你访问,所以你定位不到copy.copy()。
from xlutils.copy import copy 使用copy()
和
import xlutils 使用xlutils.copy.copy()
这两个有什么不同?
就比如import os 使用os.getcwd()
和from os import getcwd 使用getcwd()
是一样的~~~
没什么不同,一般为了代码清晰,都是导入到最深一层的。
追问关键就是import xlutils 使用xlutils.copy.copy() 报错~~为什么
Python import 模块导入问题
最近在用Python做决策树(Decision tree)时, 遇见了一个以前没有遇到的问题,就是用‘import sklearn.tree‘时一切正常,但是‘import sklearn..... sklearn.tree‘时却报错说: AttributeError: ‘module‘ object has no attribute ‘tree‘.
python的导入机制是这样的,在用 ‘import sklearn‘ 时,它只会导入 \${sklearn_dir}/__init__.py 里定义好的对象(objectives), 然后保存在自己的命名空间(namespace)里并可以后来直接使用; 在用‘ import sklearn.tree‘ 时,python实际上导入了两个文件,\${sklearn_dir}/__init__.py 和 \${sklearn_dir}/tree/__init__.py, 注意tree在这儿是以一个子文件夹的形式存在的。
这样回归到一开始的问题,就会发现是因为 sklearn.tree是一个单独存在的子文件夹/模块,并且在__init__.py里没有被定义,这样当然就不能用第一种办法来引用啦~
以上是关于python导入xlutils时遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章
我在尝试导入 pybel 模块时遇到 AttributeError