Я работаю на сервере, который не позволяет устанавливать Python (pip, easy_install), поэтому мне нужно поместить исходный код в локальный каталог, чтобы запустить Python + openpyxl.
У меня естьДоступны Python2.7 и openpyxl-2.5.8, а также зависимости openpyxl.Тем не менее, когда openpyxl вызывает builtins.py, я получаю, что
ImportError: No module named expat; use SimpleXMLTreeBuilder instead
expat.py доступен в python2.7 / Lib / xml / parsers, но я предполагаю из-за того, как Python был «установлен»он не может распознать что-то, возможно, связанное с расширениями C (на основе https://groups.google.com/forum/#!topic/google-appengine/tzmakclSXJc).
По совету @ thom_nic по адресу https://stackoverflow.com/a/2067177, Я получил старый исходный код для elementtree и попытался указать XMLTreeBuilderв ElementTree для SimpleXMLTreeBuilder как:
from xml.etree import ElementTree
from elementtree import SimpleXMLTreeBuilder
ElementTree.XMLTreeBuilder = SimpleXMLTreeBuilder.TreeBuilder
Тем не менее, я все еще получаю ту же ошибку. Полный отзыв ниже для справки. Любые идеи о том, как обойти это, так как я не могу переустановить Python или запустить yum update
или что-нибудь подобное?
Traceback:
Traceback (most recent call last):
File "/home/python_packages/python2.7/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/python_packages/python2.7/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/release/create_sheet.py", line 18, in <module>
from openpyxl.workbook import Workbook
File "/home/python_packages/openpyxl-2.5.8/openpyxl/__init__.py", line 6, in <module>
from openpyxl.workbook import Workbook
File "/home/python_packages/openpyxl-2.5.8/openpyxl/workbook/__init__.py", line 5, in <module>
from .workbook import Workbook
File "/home/python_packages/openpyxl-2.5.8/openpyxl/workbook/workbook.py", line 7, in <module>
from openpyxl.worksheet import Worksheet
File "/home/python_packages/openpyxl-2.5.8/openpyxl/worksheet/__init__.py", line 4, in <module>
from .worksheet import Worksheet
File "/home/python_packages/openpyxl-2.5.8/openpyxl/worksheet/worksheet.py", line 35, in <module>
from openpyxl.cell import Cell
File "/home/python_packages/openpyxl-2.5.8/openpyxl/cell/__init__.py", line 4, in <module>
from .cell import Cell, WriteOnlyCell
File "/home/python_packages/openpyxl-2.5.8/openpyxl/cell/cell.py", line 46, in <module>
from openpyxl.styles.styleable import StyleableObject
File "/home/python_packages/openpyxl-2.5.8/openpyxl/styles/styleable.py", line 11, in <module>
from .builtins import styles
File "/home/python_packages/openpyxl-2.5.8/openpyxl/styles/builtins.py", line 1350, in <module>
('Normal', NamedStyle.from_tree(fromstring(normal))),
File "/home/python_packages/python2.7/Lib/xml/etree/ElementTree.py", line 1310, in XML
parser = XMLParser(target=TreeBuilder())
File "/home/python_packages/python2.7/Lib/xml/etree/ElementTree.py", line 1482, in __init__
"No module named expat; use SimpleXMLTreeBuilder instead"
ImportError: No module named expat; use SimpleXMLTreeBuilder instead