Ответы пользователя по тегу PyCharm
  • Почему в PyCharm под ALT Linux в «чистое» виртуальное окружение «просачиваются» лишние пакеты?

    Sergei_Erjemin
    @Sergei_Erjemin Автор вопроса
    Улыбайся, будь самураем...
    В Alt Linux установку PyCharm (и других приложений JetBrains) можно осуществить несколькими способами. И первый из них -- установка через Flatpak. При его использовании установка и исполнение приложения происходит в некоей "изолированной среде". Таким образом, любое виртаульное кружение, созданное в PyCharm, создаётся внутри в "изолированной среды" Flatpak... При подключении существующего виртуального окружения, "изолированный" PyCharm не имеет возможности взаимодейтвовать с ним напрямую, и просто копирует его (виртуальное окружение) внутрь "изоляции" Flatpak. Виртальное окружение внутри Flatpak как раз и соодежит все эти "просочившиеся пакеты". Поэтому во "внешней среде" (системной) этих пакетов и не видно. Предположительно, это эти пакеты нужны самомому Flatpack и именно поэтому их нельзя ни удалить, ни обновить (зато можно поставить второй пакет радом, и таким образом может существовать одновременно urllib3 разных версий, lol).

    Кроме того, в изолированной среде Flatpak фиксируется внешнее состояние системных пакетоов на момент его развертывания (в данном случае -- на момент установки PyCharm). Все последующие изменения системных пакетов в изолированную среду Flatpack не попадают. И получается следующее: если, например, мы установим в Alt Linux новую версию Python, то при создании (или подключении) виртального окружения c этой версией Python средствами PyCharm, благодаря механизму virtualenv, этот новый Python будет перенесён внутрь "изоляции" Flatpack. Но если, мы доустановим в Alt Linux системные пакеты (например: mariadb-client или libmariadb3), то в изолированную среду Flatpack они уже не попадут(!). Что, например у меня, вызвало шок: в терминале Alt Linux установка pip install mysqlclient проходит, а в терминале PyCharm падает.

    Как лечить?

    В Alt Linux есть второй способ устаноки PyCharm -- c момощью пакетного менеджера snap:
    snap install --classic pycharm-professional
    Среда snap менее изолированна. Она видит (и использует) текущее состояние системных пакетов Alt Linux и ей не нужны никакие внутренние python-пакеты. Таким образом PyCharm не показывает никаких "просочившихся" батареек (их нет, т.к. среда не изолированна).

    Правда возникает другой побочный эффект -- средствами PyCharm не получается с нуля создать "чистое" виртаульное окружение. Можно только подключить существующее. Как устанавливать пакеты в это окружение -- не важно. Можно через pip (в терминале Alt Linux или PyCharm), а можно через графический интерфейс "Settings --> Project Interpeter".

    ----

    Очевидно, что самай лучший способ установки -- с помощью pycharm.sh из дистрибутива JetBrains. Но, такая установки потребует разобраться с JDK внутри Alt Linux и сделать правильные настройки переменных $pycharm_jdk, $jdk_home/$java_home. Для разных версий PyCharm они могут отличаться, так что использование snap под Alt Linux, мне кажется, -- наиболее простой путь.
    Ответ написан
    Комментировать
  • Как решить проблему с кодировкой в pycharm?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Это не с PyCharm проблема, а с Python... Скорее всего Python 2.7

    Пиши в начале питон-скрипта:
    # coding=utf-8

    Или оформляй UNICOD-строки вот так:
    words = [u'улика', u'улика1']

    Если работаешь с файлами:
    open(path_filename, "w+", encoding='utf-8')
    Ответ написан
    4 комментария