chronossc/openpyxl

Syntax error on new version

Closed this issue · 2 comments

C(o35) [phas@revenge backend]$ bpython
bpython version 0.18 on top of Python 3.5.9 /home/phas/virtualenvs/o35/bin/python3.5
>>> import openpyxl
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    import openpyxl
  File "<frozen importlib._bootstrap>", line 968, in _find_and_load
  File "<frozen importlib._bootstrap>", line 957, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/home/phas/virtualenvs/o35/lib/python3.5/site-packages/openpyxl-3.0.2-py3.5.egg/openpyxl/__init__.py", line 6, in <module>
    from openpyxl.workbook import Workbook
  File "<frozen importlib._bootstrap>", line 968, in _find_and_load
  File "<frozen importlib._bootstrap>", line 957, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/home/phas/virtualenvs/o35/lib/python3.5/site-packages/openpyxl-3.0.2-py3.5.egg/openpyxl/workbook/__init__.py", line 4, in <module>
    from .workbook import Workbook
  File "<frozen importlib._bootstrap>", line 968, in _find_and_load
  File "<frozen importlib._bootstrap>", line 957, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/home/phas/virtualenvs/o35/lib/python3.5/site-packages/openpyxl-3.0.2-py3.5.egg/openpyxl/workbook/workbook.py", line 7, in <module>
    from openpyxl.worksheet.worksheet import Worksheet
  File "<frozen importlib._bootstrap>", line 968, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 896, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1171, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1147, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1128, in _legacy_get_spec
  File "<frozen importlib._bootstrap>", line 444, in spec_from_loader
  File "<frozen importlib._bootstrap_external>", line 565, in spec_from_file_location
  File "/home/phas/virtualenvs/o35/lib/python3.5/site-packages/openpyxl-3.0.2-py3.5.egg/openpyxl/worksheet/worksheet.py", line 392
    return f"{get_column_letter(min_col)}{min_row}:{get_column_letter(max_col)}{max_row}"
                                                                                        ^
SyntaxError: invalid syntax

@riccardocagnasso TL;DR: Use Python 3.6+.

Longer explanation: Openpyxl (whose development is tracked here) runs on Python 3.6+ or later, as evidenced by there use of f-strings which were added by PEP 498 in Python 3.6.

Your interpreter is using Python 3.5, which do not "know" about f-strings, hence the SyntaxError.

I fixed this in pr #45.
EDIT: The PR isn't merged yet, however since there hasn't been an update for a while, this issue was probably solved.