@ti_zh_vrach
Бывший аптекарь.

Почему в одной IDE код работает, а в другой — нет?

Добрый день! Самоучусь разработке. Для прикладной задачи (искал решение срочно) нашёл здесь нужный код:
import os

import pandas as pd  # 1.2.1
import xlrd as xr
import xlwt as xw  # Don't touch this!


data_source = [file
               for file in os.listdir()
               if file.endswith('.xlsx')]
if len(data_source) <= 1:
    raise SystemExit
print(f'Обрабатываю {data_source[0]} и {data_source[1]}.')
one_excel_reed = xr.open_workbook(data_source[0])
one_excel = one_excel_reed.sheet_by_index(0)
two_excel_reed = xr.open_workbook(data_source[1])
two_excel = two_excel_reed.sheet_by_index(0)

list_j = []
for i in range(1, one_excel.nrows):
    for j in range(1, two_excel.nrows):
        if two_excel.row_values(j)[0] == one_excel.row_values(i)[0]:
            list_j.append(one_excel.row_values(i)[:6] + two_excel.row_values(j)[:6])
df = pd.DataFrame(list_j)
df.to_excel('output.xlsx', header=False, index=False)
print('Обработка заврешена.')
input('Нажмите любую клавишу...')

В Jupiter Notebook (6.0.3; anaconda 3) код работает замечательно. А в PyCharm (2020.3.3; venv) - отказывается переваривать xlsx. И обнаружил я это поздно. Скрипт падает с ошибкой "xlrd.biffh.XLRDError: Excel xlsx file; not supported". С xls работает, но с предупреждением:
spoiler
main.py:25: FutureWarning: As the xlwt package is no longer maintained, the xlwt engine will be removed in a future version of pandas. This is the only engine in pandas that supports writing in the xls format. Install openpyxl and write to an xlsx file instead. You can set the option io.excel.xls.writer to 'xlwt' to silence this warning. While this option is deprecated and will also raise a warning, it can be globally set and the warning suppressed.
df.to_excel('output.xlsx', header=False, index=False)

Я понял, что библиотека устарела. Но почему код без ошибок и предупреждений работает в Jupiter? Как можно заставить его работать в PyCharm? Это нужно, чтобы скрипт обернуть в exe для демонстрации mvp. После перепишу на openpyxl (когда научусь). Поможет любая дополнительная информация.
  • Вопрос задан
  • 432 просмотра
Решения вопроса 1
milssky
@milssky
Координатор племени фиолетовых обезьянок
Ответ прост. Вы используете разные версии python и библиотек в разных средах. Используйте в pycharm тот же интерпретатор, который используете в Jupiter
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Unlocker22022
@Unlocker22022
Python Программист,Системный администратор
У разных редакторов кода разные аргументы компиляции софта, советую посмотреть как в редакторе кода указаны аргументы, так же если нужна поддержка старых библиотек - соетвею установить старую версию редактора.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы