Script path pycharm что писать
Перейти к содержимому

Script path pycharm что писать

  • автор:

Основы PyCharm

Привет, сегодня я расскажу новичкам про полезные и удобные функции PyCharm (далее пайчарм). Эта статья предназначена для тех, кто только знакомится с PyCharm и написал свои первые программы. Затронем основной функционал пайчарма, который может упростить и ускорить вашу работу и узнаем, как запускать сервер и тесты Django в один клик. Поскольку, статья для новичков, то буду писать довольно подробно.

Буду рад увидеть в комментариях и другие полезные возможности пайчарма, о которых я не упомянул в статье.

Создание и настройка проекта

Начнём с самого главного — создания нового проекта (File → New Project).

На вкладке слева можно выбрать на чём будет основан ваш проект. Я покажу пример создания проекта Django (далее джанго), но Pure Python не будет сильно отличаться.

  1. В поле Location выбираем директорию, в которой создадим наш проект. После выбора директории в поле прописываем \название_проекта — это и будет папка нашего проекта.
  2. Выбор между новой виртуальной средой ( New enviroment using ) и уже существующей ( Previosly configured interpreter )
    а) Если вы выбираете уже существующую виртуальную среду, то нужно указать путь до файла python.exe в папке ../venv/Scripts/python.exe (для Linux ../venv/bin/python)
    б) Но как правило создаётся новая виртуальная среда. В поле Location можно выбрать местонахождение папки venv. По умолчанию папка venv расположится внутри папки проекта. Если необходимо создать папку с именем отличным от venv, то в поле Location сотрите venv и впишите название папки.
    Пункт Inherit global site-packages позволяет включить в нашу виртуальную среду все библиотеки установленные в глобальной среде.
    Make available to all projects отвечает за видимость созданной виртуальной среды для других проектов. Если вам нужна одна виртуальная среда сразу на несколько проектов, то стоит выбрать этот пункт.
  3. Если у вас отсутствует путь в Base interpreter , то нужно добавить python в PATH.
  4. Тут уже начинаются настройки для джанго. В поле Tempate languages идёт выбор языка для html шаблонов. Можно оставить стандартный Django или при необходимости выбрать Jinja2.
  5. Поле Templates folder отвечает за название папки с шаблонами. Без особой необходимости менять название этой папки не стоит.
  6. В Application name можно указать имя нашего первого приложения, которое мы хотим создать.
  7. Пункт Enable Django admin отвечает за работу стандартной админ. панели джанго. Если вам не нужна полностью своя админ. панель, то смело ставим тут галочку. Функционала стандартной админ. панели, как правило, достаточно.

Нажимаем Create и ждём пока создастся наш проект. Созданный проект будет иметь следующую структуру:

Я привык работать с проектом, когда все приложения вложены ещё в одну папку, а в главной директории находится папка с приложениями, файлы настройки и папка venv. Поэтому я создам папку apps (ПКМ по основной(верхней) папке → NewDirectory) и перенесу в неё папки first_app, TestProject, templates и файл manage.py. (Зажав Ctrl кликаем на нужные папки, далее нажимаем Ctrl+X, выбираем созданную ранее папку apps и нажимаем Ctrl+V). Если после переноса файлов у вас в папке apps появился файл __init__.py, то удалите его. Получим следующую структура проекта:

Чтобы джанго правильно искал шаблоны и все импорты работали корректно нужно промаркировать папки. Для этого кликаем правой кнопкой по папке apps → выбираем пункт Make Directory as и выбираем Sources Root . Для папки templates установим значение Template Folder . В папке apps создадим папку static, для хранения статических файлов и промаркируем её как Resource Root .

В процессе разработки могут появится файлы, которые не нужно проверять линтеру, такие директории можно помечать как Excluded . Например, папка vevn отмечена так по умолчанию.

Ещё немного про виртуальную среду

Функционал пайчарма часто позволяет избегать работы с терминалом и настраивать всё проще и быстрее. Поэтому даже в уже существующем проекте виртуальную среду можно удобно настроить. Для этого откроем настройки (Ctrl+Alt+S), и перейдём во вкладку Project: . Здесь нас интересует пункт Python Interpretter

В поле Python Interpretter указана используемая версия python, имя проекта (в скобках) и путь к файлу python.exe для виртуальной среды. Если вам потребовалось сменить виртуальную среду или у вас она не выбрана, то нажимаем на Add Interpreter → Add Local Interpreter . Дальнейшие действия по настройке виртуальной среды можно посмотреть в главе «Создание проекта» пункт 2.

Возможности PyCharm

Терминал

В настройках можно включить автоматическую активацию виртуальной среды в терминале при его открытии. Очень полезная вещь, ведь теперь не придётся каждый раз активировать её вручную. Для этого открываем настройки (Ctrl+Alt+S) → Tools → Terminal.

Здесь можно настроить стартовую директорию при открытии терминала ( Start directory ), выбрать какой терминал будет открываться по умолчанию ( Shell path ) и самое главное установить автоматическую активацию виртуальной среды. Ставим галочку перед Activate virtualenv и готово.
Если у вас выбран терминал bash, то вы столкнётесь с тем, что при открытии терминала над строкой ввода не будет отображаться название виртуальной среды. Не пугайтесь. Не знаю с чем связан данный баг, но всё работает корректно и виртуальная среда уже активирована. Можете проверить выбранный интерпритатор с помощью команды which python .

Работа с Git

Больше не придётся мучаться с командами в терминале. Все основные действия с гитом можно проделывать с помощью встроенных инструментов пайчарм. В левой верхней части окна находится вкладка Commit . Нажав на неё откроется меню работы с гитом.

Первые три значка в верхней строке отвечают за проверку последних изменений, откат изменений и сравнение файла до и после изменений.
Можно выбрать файлы, которые войдут в коммит, написать комментарий ( Commit Message ), дополнить последний коммит ( Amend ). Кнопки Commit и Commit and Push отвечают соответственно за создание коммита и его отправку на GitHub или другой сервис. При входе в свой GitHub аккаунт в дальнейшем не потребуется каждый раз вводить пароль перед пушем, всё произойдёт автоматически.

Базы данных

По умолчанию инструменты для работы с БД доступны только в pro версии пайчарма. Для бесплатной версии есть плагин, который предоставляет схожий функционал. Расскажу про оба варианта.

Работа с БД в PyCharm Professional

Стандартный функционал предоставляет обширный функционал для работы БД, который покрывают различные ваши потребности, но я расскажу о самом простом и полезном для новичков.
Для начала необходимо установить связь с БД. В верхнем правом углу находим вкладку Database → нажимаем на плюс → Data Source → SQLite (тут выбираем нужную СУБД).

В открывшемся окне в поле Name вводим имя, которое мы хотим видеть при работе с БД (на название файла БД это никак не повлияет). В поле File выбираем наш файл БД и нажимаем ОК .

Теперь в списке можем увидеть нашу БД. Для того, чтобы обновить данные БД нажимаем на стрелочки (или комбинация Ctrl+F5) и получаем последнее состояние БД.

В этом окне мы можем видеть все таблицы БД. Двойной клик по ним откроет окно редактирования таблицы. Можно посмотреть правильно ли сохранились данные или подправить что-то при необходимости.

Работа с БД в PyCharm Community

Для работы с БД с бесплатной версии необходимо установить плагин Database Navigator (процесс установки плагинов описан ближе в главе «Плагины» ближе к концу статьи).

После установки плагина, в левой верхней части интерфейса появится вкладка DB Browser . Во вкладку нажимаем на плюс и выбираем нужную СУБД.

В открывшемся меню в поле Name указываем название соединения. Вместо sqlite.db указываем путь к нашей БД и нажимаем ОК .

Двойной клик по таблице откроет окно, в котором будет предложено составить SQL запрос для выбора данных из таблицы. Просто нажимаем на кнопку No Filter и получаем все записи из таблицы. Теперь у нас есть доступ к таблицам БД, возможность просматривать и редактировать их.

Настройка сервера и тестов для Django

Каждый раз для запуска сервера джанго приходится вводить команду в терминал и открывать ещё один терминал, т.к. при работе сервера нельзя пользоваться терминалом. Это доставляет неудобства, поэтому в пайчарм можно настроить запуск сервера и тестов в один клик и без блокировки терминала.

Открываем выпадающее меню и кликаем на Edit Configurations. . В открывшемся окне нажимаем на крестик и находим Django Server .

В правой части окна нам предложат настроить нашу конфигурацию. В поле Name вводим имя конфигурации, а в поле Working directory выбираем папку проекта, которую при создании мы отметили как Sources Root . Если же все приложения у вас хранятся в основной директории проекта, то укажите её в этом поле. Сохраняем конфигурацию и теперь можно запустить сервер, просто нажав на кнопку Run (зелёный треугольник).

На нижней панели появится вкладка Run , которая будет показывать информацию о работе нашего сервера и можно будет свободно работать с терминалом.

Для создания тестовой сборки вместо Django server выбираем Django tests . Поля Name и Working directory заполняются аналогично конфигурации сервера. Полезным может оказаться поле Options . Оно позволяет передать дополнительные аргументы при запуске тестов, так как при вводе команд в терминале.

Теперь все тесты будут запускаться в специальном окне, где хорошо видно, какие тесты прошли проверку, а какие нет. Можно оставить только неудачные тесты и удобно переключаться между ними. Чтобы увидеть информацию по конкретному тесту, можно просто выбрать его, а не копаться в море ошибок, пытаясь найти нужную информацию.

После такой настройки можно запускать сервер и тесты в один клик. При необходимости можно настроить и другие конфигурации, например для запуска тестов в отдельном приложении джанго.

Аналогичные конфигурации можно создать для Flask, FastAPI и многих других фреймворков.

Полезные плагины

Плагины могут очень сильно расширить и дополнить стандартный функционал. Я разделил их на три группы: обязательные, опциональные и косметика. Рекомендую скачать все плагины из первой категории. Для установки плагинов откройте настройки (Ctrl+Alt+S) → Plugins и останется выбрать только нужные вам расширения.

Обязательные

  • Tabnine – потрясающий плагин, который будет писать код за вас). Часто спасает при вводе длинных строк, которые он дописывает сам. И даже может дописывать простенькие функции или логические конструкции. В общем, крайне полезная вещь. Конечно же есть и минус, большая часть функционала платная, по подписке. Но даже бесплатная версия будет полезна
  • Rainbow Brackets – меняет цвет скобок в зависимости от их вложенности. Очень упрощает работу и позволяет гораздо быстрее ориентироваться в коде.
  • Requirements – плагин для более удобной работы с файлом requirements.txt

Опциональные

  • Translation – если вы прекрасно знаете английский, то этот плагин вам ни к чему, но всегда удобно иметь переводчик под рукой.
  • WakaTime – позволяет отслеживать сколько времени вы потратили на работу, на какой проект и многое другое. Есть и платный функционал, но для простого анализа потраченного на работу времени хватает и бесплатной версии.
  • GitToolBox – расширяет стандартный функционал работы с гитом.
  • PyLint, SonarLint и другие. Я считаю, что линтеров много не бывает, поэтому предлагаю поставить какой-нибудь дополнительный линтер.
  • MyPy – плагин помогает в проверке статических типов. Он использует собственную динамическую проверку Python или неявную (утиную) типизацию с подсказкой самого типа.
  • Flake8 – проверяет код на соответствие PEP8. Его установка отличается от стандартных плагинов. Как установить flake8 в pycharm.

Косметика

  • ExtraToolWindows Colorful Icons – делает многие иконки цветными и лично для меня упрощает навигацию по ним.
  • Pokemon Progress – добавит немного веселья в работу. Плагин меняет полосу загрузки на покемонов. Можно выбрать нескольких любимых, а можно каждый раз любоваться новыми.
  • Ещё есть всевозможные варианты тем на любой вкус и цвет. При большом желании можно создать и свою. Лично меня вполне устраивает стандартная тема Darcula .

Это список основных плагинов, которыми я пользуюсь. Есть и другие, но не буду нагружать вас слишком сильно, для начала хватит и этого. В комментариях можете поделиться своими самыми полезными плагинами.

Горячие клавиши и всякие мелочи

В этой главе будут самые полезные горячий клавиши и небольшие фишки пайчарма.

  • Быстрое открытие файла, функции, класса. Двойное нажатие Shift откроет строку поиска. Здесь вводим нужное нам название и можно быстро перейти к найденному элементу. Особенно полезно, когда проект большой и приходится лазить по папкам в поиска нужного файла или функции.
  • Разделение рабочей области. Нажав ПКМ на вкладку открытого файла, можно выбрать один из пунктов Split и видеть перед собой сразу два и более файлов.
  • Переход к функции, классу или файлу. Зажав Ctrl и кликнув по функции или классу можно быстро переместиться к ним, даже если они находятся в другом файле. А если в коде у вас, например, указано имя html шаблона, то по клику можно быстро его открыть.
  • Автоформатирование кода. Комбинация Ctrl+Alt+L приводит весь код в файле в соответствие с настройками форматирования для данного типа файла. Удобно применять при переносе строк, чтобы все отступы подравнялись и заодно поправить то, что вы могли пропустить
  • Дублировать текущую строку. Ctrl+D создаёт дубликат строки и вставляет его на следующую строку. Пригождается при написании похожих и длинных конструкций
  • Переименовать что угодно. Shift+F6 переименует выбранную переменную, файл и много другое сразу во всём проекте или при необходимости только в выбранном файле. Если имя файле в коде хранится в виде строки, то оно тоже изменится.
  • Комбинация Ctrl+/ закомментирует (либо расскомментирует) все выделенные строки, если выбрана английская раскладка. При активной русской раскладке данная комбинация свернёт выбранный участок кода, а при нажатии на появившийся символ многоточия раскроет его обратно.
  • Левый Alt+ЛКМ(левая кнопка мыши) добавит дополнительный курсор в указанное место.
  • Поиска по файлу — Ctrl+F. Поиска и замена в файле — Ctrl+R. Ctrl+Shift+F текстовый поиск сразу по всему проекту.
  • Отмена последнего действия — Сtrl+Z, операция обратная отмена последнего действия (если переборщили с Ctrl+Z) Ctrl+Y. При Первом использовании Ctrl+Y пайчарм предложит выбрать, что назначить на эту комбинацию: удаление строки или Ctrl+Z наоборот. Я предпочитаю второе.
  • Открыть буфер обмена. Win+V откроет буфер обмена и можно выбрать нужное из последних скопированных данных. Данная комбинация относится к windows, а не пайчарму, но она очень полезна в работе. Для Linux тоже можно найти менеджеры буфера обмена.
  • Установки длины строки по PEP8. В настройках перехожим в Editor → Code Stile → Python. В поле Hard wrap at устанавливаем значение 79 . В поле Wrap on typing устанавливаем значение Yes . Теперь справа от кода мы будем видеть линию, которая ограничивает длину строки в 79 символов, но при необходимости можно за неё вылезти.
  • Список всех горячих клавиш в PyCharm

В этой статье, я постарался рассказать о самых полезных возможностях пайчарма. Если вы знаете, как ещё можно упростить процесс разработки, то пишите об этом в комментариях, возможно я и другие пользователи дополним свой арсенал инструментов разработки. Так же пишите, о чём ещё вы хотели бы услышать в таком развёрнутом формате.

Настройка запуска в PyCharm

Сколько не гуглил, так и не нашел как сделать чтобы работали кнопки справа сверху (обведены). Т.е. чтобы код можно было запускать прямо в pycharm. Скрины настроек тут же. Кнопки которые не работаютRun/Debug Configurations Project Interpreter

Отслеживать
48.7k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 11 мая 2020 в 20:02
TheGloomDreamer TheGloomDreamer
37 1 1 золотой знак 1 1 серебряный знак 7 7 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вам нужно добавить конфигурацию запуска: сказать PyCharm, какой файл запускать и с какими параметрами. Сделать это можно двумя способами:

1) Простой способ — кликнуть правой клавишей мыши по области, где вы пишите код и в контекстном меню выбрать run -filename- (первый скриншот)

(скрин 1)

2) Но также вы можете настроить конфигурации запуска путем открытия настроек конфигурации. Сверху, рядом с кнопкой пуска — Edit configurations -> Add configuration, далее выбираете файл, который хотите запустить (указываете путь до него в поле script path), и нажимаете safe configuration. После чего сможете запустить ваш код прямо в пайшарме (скрины 2-. )

Path variables

Use path variables to define absolute paths to resources that are not part of a specific project. These external resources may be located in different places on the computers of your teammates. This is why user-defined custom path variables are not stored as project settings, but as global IDE settings. Once configured, such path variables will have the same value for any project that you open with your instance of PyCharm.

Create a new path variable

  1. Press Control+Alt+S to open the IDE settings and then select Appearance & Behavior | Path Variables .
  2. Click , enter the name and value of the variable, and click OK to apply the changes.

You can use path variables to specify paths and command-line arguments for external tools and in some run configurations.

For example, you can define a path variable that points to the location of some data source (like a CSV file) or a third-party library that is not stored in your project. If you use this path variable in a run configuration that you share with your project, others can define the correct value for this path variable in their environment and be sure that the run configuration will work for them.

Refer to the variable as $var_name$ in fields and configuration files that accept path variables.

PyCharm also has the following built-in path variables:

The current user’s home directory.

The current project’s root directory.

Create a new path variable

For example, you have a Python script that processes some data stored in your system in the reports.csv file. You create a run/debug configuration to run this script and want to share this configuration with your teammates through the VCS.

  1. Press Control+Alt+S to open the IDE settings and then select Appearance & Behavior | Path Variables .
  2. Click and enter the name of the new variable (for example, DATA_PATH ) and its value that points to the target directory with the data file on your disk. Adding a new path variable
  3. Share the run/debug configuration through your version control system. Run/debug configuration
  4. Inspect the .idea/runConfiguration/.xml file: Run/debug configuration file with the path variable addedAfter your teammates update their projects from VCS, they will change the DATA_PATH variable value so that it points to the data directory on their computers.

Ignore path variables

Whenever you open or update a project, PyCharm checks for unresolved path variables. If the IDE detects any, it will ask you to define values for them. If you are not going to use files or directories with the unresolved path variables, you can add them to the list of ignored variables.

You can also use the list of ignored variables when a program argument passed to the run/debug configuration has the same format as a path variable (for example, an environment variable).

  1. Press Control+Alt+S to open the IDE settings and then select Appearance & Behavior | Path Variables .
  2. Add the names that PyCharm shouldn’t consider to be path variables to the Ignored Variables field.
  3. Click OK to apply the changes.

pycharm run/debug configuration. Примеры конфигураций

Конфигурации бывают нескольких видов. В моей практике распространены две:

  1. Django server — для запуска самого сайта.
  2. Python — для выполнения различных скриптов, у меня чаще всего management-команд.

Расмотрим в отдельности.

Запуск Django приложения в PyCharm (Пример конфигурации Django server)

У меня лично этот процесс происходит автоматически, то есть при открытии папки проекта (через меню «File \ Open. «) PyCharm самостоятельно создаёт конфигурацию Django server с необходимыми настройками:

Если у меня открыть настройки, то он будут такими:

Атоматически распознать Django server и проставить настройки помогает структура папок проекта. У меня она выглядит следующим образом:

collect_static — папка, куда собирается вся статика на боевом сервере для раздачи через прокси-сервер (у меня nginx).
email_auth — приложение, кастомная модель пользователя.
env — виртуальное окружение.
media — сюда собираются все файлы загруженные через сайт.
spec — это простое приложение, которе выполняет некоторые функции сайта. У вас оно может по-другому называться.
static — папка со статическими файлами на уровне проекта.
templates — папка с шаблонами на уровне проекта.

Пример manage.py

from os.path import join, exists, abspath, dirname import os import sys import subprocess import shutil PROJECT_ROOT = abspath(dirname(__file__)) REQUIREMENTS = join(PROJECT_ROOT, 'requirements.txt') VE_ROOT = join(PROJECT_ROOT, 'env') def go_to_ve(): # going into ve if not sys.prefix == VE_ROOT: if sys.platform == 'win32': python = join(VE_ROOT, 'Scripts', 'python.exe') else: python = join(VE_ROOT, 'bin', 'python') retcode = subprocess.call([python, __file__] + sys.argv[1:]) sys.exit(retcode) delete_ve = 'del_ve' in sys.argv or 'delete_ve' in sys.argv if delete_ve: if exists(VE_ROOT): print 'Deleting env. ' shutil.rmtree(VE_ROOT) print 'Done.' sys.exit(0) update_ve = 'up_ve' in sys.argv or 'update_ve' in sys.argv if update_ve: # install ve if not exists(VE_ROOT): import virtualenv print 'Creating virtualenv. ' virtualenv.logger = virtualenv.Logger(consumers=[]) virtualenv.create_environment(VE_ROOT, site_packages=False) print 'Done.' go_to_ve() # check requirements import pip pip.main(['install', '-r', REQUIREMENTS]) sys.exit(0) if exists(VE_ROOT): go_to_ve() # print 'Found virtualenv. Entering. ' try: import settings except ImportError: import sys sys.stderr.write("Error: Can't find the file 'settings.py' in the directory") sys.exit(1) if __name__ == '__main__': if not delete_ve: os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)

Пример settings.py

# -*- coding: utf-8 -*- from __future__ import unicode_literals import os try: import local_settings except ImportError: import local_settings_sample as local_settings DEBUG = local_settings.DEBUG ROOT_DIR = os.path.dirname(__file__) ADMINS = (('Maltsev Artem', 'admin@vits.pro'), ) EMAIL_HOST = local_settings.EMAIL_HOST EMAIL_PORT = local_settings.EMAIL_PORT EMAIL_HOST_USER = local_settings.EMAIL_HOST_USER EMAIL_HOST_PASSWORD = local_settings.EMAIL_HOST_PASSWORD EMAIL_USE_TLS = getattr(local_settings, 'EMAIL_USE_TLS', False) EMAIL_USE_SSL = getattr(local_settings, 'EMAIL_USE_SSL', False) SERVER_EMAIL = EMAIL_HOST_USER DEFAULT_FROM_EMAIL = EMAIL_HOST_USER MANAGERS = ADMINS DATABASES = local_settings.DATABASES TIME_ZONE = 'Asia/Irkutsk' LANGUAGE_CODE = 'ru' LANGUAGES = (('ru', 'Russian'), ) SITE_ID = 1 USE_I18N = True USE_L10N = True USE_TZ = True USE_X_FORWARDED_HOST = True MEDIA_ROOT = os.path.join(ROOT_DIR, 'media') MEDIA_URL = "/media/" STATIC_ROOT = os.path.join(ROOT_DIR, 'collect_static') STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(ROOT_DIR, 'static'), ) STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'sass_processor.finders.CssFinder', 'compressor.finders.CompressorFinder', ) SECRET_KEY = local_settings.SECRET_KEY MIDDLEWARE_CLASSES = ( 'django.middleware.cache.UpdateCacheMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.gzip.GZipMiddleware', 'cms.middleware.language.LanguageCookieMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.utils.ApphookReloadMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware', ) TEMPLATES = [ < 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(ROOT_DIR, 'templates'), ], 'OPTIONS': < 'context_processors': [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.template.context_processors.csrf', 'django.template.context_processors.request', 'django.contrib.messages.context_processors.messages', 'sekizai.context_processors.sekizai', 'cms.context_processors.cms_settings', ], 'loaders': [ ('django.template.loaders.cached.Loader', [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'admin_tools.template_loaders.Loader', ]), ]>>, ] ROOT_URLCONF = 'urls' WSGI_APPLICATION = 'wsgi.application' INSTALLED_APPS = ( 'djangocms_admin_style', 'admin_tools', 'admin_tools.dashboard', 'django.contrib.auth', 'email_auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.sitemaps', 'djangocms_text_ckeditor', # note this needs to be above the 'cms' entry 'cms', 'treebeard', 'menus', 'sekizai', 'compressor', 'spec', 'sass_processor', ) + PROJECT_APPS SILENCED_SYSTEM_CHECKS = ('auth.E003', 'auth.W004') AUTH_USER_MODEL = 'email_auth.User' CACHES = < 'default': < 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', >, > LOGGING = < 'version': 1, 'disable_existing_loggers': False, 'filters': < 'require_debug_false': < '()': 'django.utils.log.RequireDebugFalse' >>, 'handlers': < 'mail_admins': < 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' >>, 'loggers': < 'django.request': < 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True >> > ALLOWED_HOSTS = getattr(local_settings, 'ALLOWED_HOSTS', ['localhost', ]) TEST_RUNNER = 'django.test.runner.DiscoverRunner' if DEBUG: INTERNAL_IPS = ('127.0.0.1', ) # --- CMS --- CMS_TEMPLATES = ( ('default.html', 'По умолчанию'), ) # --- end CMS ---

Пример рабочего проекта

Для наглядности я подготовил рабочий демонстрационный проект, который вы можете скачать для наглядности:

По идее, загрузив пример проекта с виртуальным окружением, и открыв его через меню «File \ Open. «, PyCharm автоматически определит Django Server конфигурацию и вы сразу сможете запустить проект. Не забудьте только создать базу данных и применить миграции.

Пример простой конфигурации python-скрипта

Передо мной встала задача: написать скрипт оповещения клиентов об скором истечении срока действия услуг. Запуск скрипта должен производиться из консоли для того, чтобы его можно было добавить в cron. Решением этой задачи служит использование management команды.

Скрипт я написал: теперь самое время его протестировать и отладить в случае необходимости. И чтобы это было легче проводить, можно воспользоваться debug-ом в самом PyCharm-е. Для этого нужно добавить необходимую конфигурацию.

Добавить в PyCharm конфигурацию запуска обычного python скрипта достаточно просто: в списке конфигураций выбираем «Edit Configurations. » (на рисунке выделено синим цветом).

Затем щёлкаем по зелёному плюсику (выделено синей рамкой) и выбираем python:

А затем проделываем несколько нехитрых действий:

  1. Вписываем имя конфигурации в поле «Name». В моём случае client_notifications, и у меня часто имя конфигурации совпадает с именем самого скрипта — так удобно.
  2. Указываем полный путь до скрипта в «Script». Да, на скриншоте путь начинается с E 🙂 Раньше под виндой сидел, теперь давно уже на Linux-е.
  3. Пишем параметры скрипта в «Script parameters». Имя файла моего скрипта client_notifications, поэтому его и пишем.

Нажимаем окей и можно дебажить!

Что касается поля «Interpreter options» — там указываются параметры самого интерпретатора python. По сути они вставляются между python и manage.py.
А «Working directory» можно не трогать. В данном случае он ни на что не влияет.

Запуск Django-Shop приложения в PyCharm

Разберём более сложный пример запуска конфигурации: попробуем запустить скаченный с какого-нибудь репозитория (напр., github) проект на Django. В качестве примера выберем Django Shop — платформа для создания интернет-магазина.

Для начала откроем терминал и склонируем проект с github:

git clone https://github.com/awesto/django-shop.git

Далее выполним специфичные команды для запуска Django Shop демо-примера (для каждого проекта свои команды по запуску!):

cd django-shop virtualenv ~/.virtualenvs/django-shop source ~/.virtualenvs/django-shop/bin/activate pip install -e . pip install -r requirements/test_py3.txt pip install Django==1.9.10 npm install # в версиях 0.9.3 и выше, сначала нужно зайти в папку example cd example export DJANGO_SHOP_TUTORIAL=commodity export DJANGO_DEBUG=True ./manage.py initialize_shop_demo ./manage.py compilescss

В общем случае для любого проекта нужно:

  1. Создать виртуальное окружение командой virtualenv .
  2. Войти в виртуальное окружение командой source .
  3. Установить зависимости (чаще всего они перечислены в файле requirements.txt) командой pip install .

Замечание
Другие выше перечисленные команды я не буду объяснять в данной статье, так как, ещё раз повторюсь, для каждого проекта свои команды по подготовке к запуску приложения.

И наконец, запускаем проект:

./manage.py runserver

Если в терминале получилось запустить проект, то переходим к его запуску в PyCharm. Для этого открываем в PyCharm-е наш проект:

Нам важно, чтобы мы смогли просматривать в PyCharm все файлы проекта, склонированного с github, поэтому выбираем корневую папку проекта django-shop .

Теперь нам нужно добавить поддержку Django для приложения. Для этого выбираем в меню: «File \ Settings . «:

В этом окне нужно настроить Django project root . Эту директорию можно выбирать такую, в которой лежит manage.py. После выбора директории вы заметите, что PyCharm сам попытался определить местонахождение manage.py и settings.py. Давайте ему поможем, определив точное месторасположение этих файлов. В случае с Django Shop settings.py лежит в папке myshop, поэтому щёлкаем на значок «Три точки» в соответствующем поле для открытия диалогового окна и находим наш settings.py.

Обратите внимание, что мы также добавили переменную окружения DJANGO_SHOP_TUTORIAL в поле Environment variables . Чуть ниже вы увидите, что переменные окружения также добавляются при создании конфигурации, и для Django Shop переменную DJANGO_SHOP_TUTORIAL нужно задавать в двух местах, потому что этот проект требует обязательного наличия DJANGO_SHOP_TUTORIAL в переменных окружения. А так как запуск management команд через PyCharm (гор. клавиша Ctrl + Alt + R) таких, как makemigrations или migrate , происходит в отдельной конфигурации, поэтому без указания DJANGO_SHOP_TUTORIAL команды не смогут запуститься и выведут такую ошибку django.core.exceptions.ImproperlyConfigured: Environment variable DJANGO_SHOP_TUTORIAL is not set :

Поэтому поставим DJANGO_SHOP_TUTORIAL=commodity .

Теперь проверим правильно ли выбрано виртуальное окружение для проекта. Переходим в Project Interpreter :

Командой virtualenv ~/.virtualenvs/django-shop было установлено виртуальное окружение для проекта, поэтому проверьте, чтобы в поле Project Interpreter путь совпадал: 2.7.6 virtualenv at ~/.virtualenvs/django-shop . Найти этот путь можно щёлкнув на крайнюю справа стрелочку вниз этого поля. Если в списке нет пути до виртуального окружения, то можно его вручную добавить, щёлкнув на значок шестерёнки (правее стрелки влево):

Теперь закрываем окно настроек, и последнее что нам осталось сделать, это добавить конфигурацию запуска проекта. Для этого щёлкаем Edit Configuration :

И, щёкнув на плюсик, выбираем Django Server:

Теперь остаётся заполнить Environment variables по необходимости:

DJANGO_SHOP_TUTORIAL=commodity DJANGO_DEBUG=True DJANGO_SETTINGS_MODULE=myshop.settings

Имейте ввиду, что, если у вас в переменных окружения DJANGO_SETTINGS_MODULE=settings :

или в manage.py записан путь до settings.py неправильным образом:

#!/usr/bin/env python import os import sys if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)

вместо myshop.settings . То возникнет ошибка:

ImportError: No module named settings

Так как в переменных окружения значение переменной DJANGO_SETTINGS_MODULE должно быть равно правильному пути до settings.py. В нашем примере с Django Shop DJANGO_SETTINGS_MODULE=myshop.settings .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *