ImportError:无法导入名称 get_column_letter
Posted
技术标签:
【中文标题】ImportError:无法导入名称 get_column_letter【英文标题】:ImportError: cannot import name get_column_letter 【发布时间】:2016-08-11 19:11:31 【问题描述】:我可以在我的代码中使用 openpyxl 作为导入。但是当我尝试执行以下操作时:
from openpyxl.cell import get_column_letter
我收到以下错误:
ImportError: cannot import name get_column_letter
我正在使用 python 2.7。我已经使用easy_install
安装了它。尝试搜索此问题,但找不到任何相关内容。
【问题讨论】:
你在用python package by the same name
吗?请确保您没有导入任何名为 get_column_letter
的自定义 python 包/文件
【参考方案1】:
函数 get_column_letter
已在 Openpyxl 版本 2.4 中从 openpyxl.cell
重新定位到 openpyxl.utils
。
当前导入为:from openpyxl.utils import get_column_letter
如果您不知道最终用户使用的是哪个版本,可以使用以下代码:
try:
from openpyxl.cell import get_column_letter
except ImportError:
from openpyxl.utils import get_column_letter
【讨论】:
openpyxl.utils.get_column_letter(28)
为我工作。这将打印“AB”列字母。【参考方案2】:
from openpyxl.utils import get_column_letter
这也适用于 Python3。
【讨论】:
【参考方案3】:我遇到了同样的问题,我使用“python setup.py install”重新安装了the latest openpyxl。然后就可以了。
【讨论】:
【参考方案4】:print(openpyxl.cell.get_column_letter(1)) # does not work …
你宁愿使用
print(openpyxl.utils.get_column_letter(1))
【讨论】:
【参考方案5】:在 Python 3.8 中工作:
一旦库被使用
from openpyxl.utils import get_column_letter
字母数字列值可以通过这种方式获取:
print(get_column_letter(26))
或
column_variable = get_column_letter(26)
对不起,如果这太简单了,我花了一段时间才意识到从列索引号到列字母的转换独立于任何可能打开的工作表,因此,没有必要对工作表使用 dot.methods 或单个单元格。
【讨论】:
【参考方案6】:tl;dr for Python3
pip3 install Cython
pip3 install pandas
Abbas 或 Jael Woo 的其他两个解决方案都没有为 Python3 工作。
我最终使用了 apt-get install python3-pandas
,但后来 pip3 install pandas
失败了,因为它说我需要 Cython,因为它在 Pandas installation docs 中确实提到它是一个“可选依赖项”。
话虽如此,我运行了pip3 install Cython
,然后运行了pip3 install pandas
,它成功了。
注意:在 Ubuntu 上安装 Cython 和 Pandas 需要一段时间(不确定 EC2 的 Ubuntu 版本),但在 Mac 10.11.5 上似乎要快得多
编辑:使用 apt-get 安装 Pandas 会产生错误,因为 apt-get 安装了旧版本的 Pandas。一旦我使用 pip3 安装/升级 Pandas,ImportErrors 就消失了。
编辑:如果您足够关心否决,请尝试以评论的形式对此答案添加一些建设性的批评
【讨论】:
以上是关于ImportError:无法导入名称 get_column_letter的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:无法导入名称“AFAVSignature”
ImportError:无法导入名称“评估”(来自意外导入评估)
Django 'ImportError: 无法导入名称 url'