Задать вопрос
Ответы пользователя по тегу PyCharm
  • Почему файлы .idea не игнорируются, несмотря на добавление в .gitignore в PyCharm?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    • .git - это не какой-то временный каталог, его нельзя удалять. Там все исторические и настроечные данные вашего репозитория.
    • После внесения изменений в .gitignore следует нажимать кнопочку обновления в заголовке дерева файлов в IDE.
    • Если у вас нет репозитория в каталоге (нет ".git" фала), то чего вы ждёте от IDE? Именно GIT игнорирует файлы, указанные в .gitignore.
    • .gitignore проекта должен лежать в корне проекта.
    • Файлы, которые уже добавлены для отслеживания в гит и подпадают под одну из масок игнорировапния всё раво не будут проигнорированы. (не ваш случай но просто для понятности)
    • Зачем вы .gitignore положили в .idea? Надо понимать, что .gitignore может лежать и тут, но он в таком случае не заносится обычно под контроль версий.


    Вот меры для понимания:
    1. Убедитесь, что у вас есть репозиторий в каталоге проекта (есть .git каталог). Лучше склонируйте репозиторий заново.
    2. Разместите .gitignore в корне проекта и добавьте его под контроль версий, сделайте коммит.
    3. .idea/.gitignore должен содержать только те пути , которые должны игнорироваться только на вашем компьютере, а не на компьютерах других людей, которые работают с этим репозиторием.
    4. Чтобы исключить какие-то другие непонятности - сделайте чистый простой пример: создайте новый чистый репозиторий, добавьте в его корень .gitignore и пару файлов, которые должны быть под контролем версий. Откройте проект в ide и убедитесь, что создан каталог .idea. Убедитесь, что он есть в .gitignore и его файлы не показываются IDE в списке не добавленных в индекс.
    Ответ написан
  • Альтернатива PyCharm?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    У вас 3.11 питон. Гляньте есть ли совместмость у ваших библиотек с этой версией. Возможно они еще не сделали релиз под 3.11.
    Ответ написан
    3 комментария
  • Почему не сохраняется проект в PyCharm?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Если файлы не менялись, то они и не будут перезаписываться. И у каталога не поменяется дата, если набор файлов в нём не изменился. А в .idea сохраняются настройки и кэш pycharm'а, которые относятся к вашему проекту.
    При нормально работе в IDE ничего сохранять не нужно. оно само сохраняется.
    А вот что нужно - это пользоваться системой контроля версий. Например GIT
    Ответ написан
    Комментировать
  • Pycharm не подсказывает код по opencv-python, как исправить?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Говорят вот хардлинком библиотеки лечат https://stackoverflow.com/questions/5049842/autoco...
    Ответ написан
    Комментировать
  • Возмодно ли любым способом скачать pysharm на андроид?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Скачать можете, установить и запустить не получится.
    Но можно арендовать VDS на одном из многочисленных хостингов, ставьте туда ОС, например убунту или лучше что-то менее прожорливое. Ну и там можно поставить пичарм. Работать придётся через удаленный десктоп, что не чень комфортно.

    Можно поискать подходящую вам браузерную IDE.
    https://visualstudio.microsoft.com/services/visual...
    https://github.com/features/codespaces
    Ответ написан
    Комментировать
  • Почему PyCharm подсвечивает жёлтым то, что работает?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Это специфика библиотеки, она представляет собой обёртку вокруг бинарной библиотеки и вот так вот в ней описаны интерфейсы нестандартно, что пичарм не видит сигнатур методов.
    Вы бы спросили на пикабу, там, точно знаю, сидит кто-то из джетбрейнс и довольно шустро отвечает. Наверняка там есть какая-то волшебная настройка для таких случаев.
    Но в целом подсвечивает и подсвечивает. И хрен бы с ним. Главное, чтобы юнит-тесты отрабатывали и интеграционные.
    Ответ написан
    Комментировать
  • Как отобразить автоподсказки при типе typing.List[typing.Union] для любого элемента списка?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы хотите странного.
    А именно, по какой то причине хотите сделать заведомо небезопасный код, и при этом хотите, чтобы IDE вам в этом помогал. Это я к чему: кейс, который вы здесь привели, - это антипаттерн; было бы странно ожидать такую специфическую обработку этой ситуации от IDE.

    В чем, собственно, проблема.
    Метод, который вы вызываете у объекта, не должен зависеть от того, какие данные у вас на входе, иначе ваш код становится небезопасным и при жругом наборе данных возможна ошибка из-за отсутствия вызванного метода.

    Такие вещи нужно в коде разбирать явно.
    К примеру можно явно проверить переменную на принадлежность типу и IDE это учтёт делая подсказку:
    resp = c.response
    if isinstance(resp, A):
        resp.items[0].
    Ответ написан
  • Как найти и удалить плагин SQLScout в Pycharm?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Так я и не понял, решили вы проблему для себя или нет?

    Нужно найти каталоги вида:
    %HOMEPATH%\\.<product><version>\config\plugins
    Показать здесь их содержимое.
    Указать версию всех продуктов JetBrains, установленных в системе.
    Удалить все следы проблемного плагина.
    Ответ написан
    1 комментарий
  • Странное поведение pycharm?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Сейчас я проясню ситуацию=).
    Текст бывает либо в какой-то кодировке (cp1251, utf-8, win866, ascii, и т.д.), тогда это байты; либо в юникоде (это, как бы, абстрактное представление символов), тогда это строки из абстрактных юникодовых символов.
    Все файлы, потоки ввода-вывода и т.д. у нас в компьютере работает с байтами, а не с абстрактными юникодовыми символами. Это значит, что перед выводом в файл или консоль должно производиться кодирование юникода в конкретную кодировку.
    Кодировка -- это способ представить байтами абстрактных символов юникода. Каждый юникодовый символ, в зависимости от кодировки, будет задаваться одним или более байтом. Некоторые абстрактные символы не поддерживаются некоторыми кодировками.

    Так, например, кодировка ascii поддерживает только стандартные 128 символов и при попытке конвертировать в неё (явно или неявно) букву "Ж", будет такая же ошибка как у вас. Надо полагать метод parse в вашем случае возвращает юникод, а оператор print делает неявное преобразование в кодировку по умолчанию (ascii, судя по сообщению об ошибке).
    Осталось выяснить в каких случаях как определяется кодировка по умолчанию.
    Артём Клименко правильно предложил в своём ответе проверить что берётся в качестве кодировки по умолчанию в том и другом случае.
    Однако решением проблемы должно быть явное преобразование текста в нужную кодировку. Я в таких случаях придерживаюсь следующих правил:
    • Всё, что приходит в программу, привожу в юникод (если это не произошло неявно в той библиотеке, посредством которой я получил данные).
    • В программе работаю с текстом только в юникоде (если речь не идёт о каких-то низкоуровневых операциях над байтами, вроде парсинга протоколов и прочего.
    • Перед выводом конвертирую текст в нужную кодировку или настраиваю потоки вывода на автоматическое преобразование.
    • Когда не понятно в какой кодировке делать вывод, руководствуюсь следующими правилами:
      • Выходной поток -- это виндовый stdout и в нём не задана кодировка (bat-файлы, консоль) -- cp866
      • Файлы, БД и прочее, что поддерживает юникод и сделано правильно -- UTF-8
      • Когда в винде не помогают пердыдущие пункты -- cp1251
      • В других операционках utf-8.


    Подчеркиваю. Если выходной поток сконфигурирован на ascii, а у нас в программе могут попасться не-ascii символы, то нужно приводить текст в какую-то кодировку (см выше)), а иначе ничего не трогаем и пишем юникод.
    Ответ написан
    Комментировать