Skip to content

Configure PyCharm IDE #232

Open
Open

Description

@cztomczak

Instructions for configuring PyCharm IDE for work with CEF Python code.

  1. In Tool Windows > Project right click on "src/extern/cef/", "src/extern/" and "src/" directories and select Mark Directory As > Mark as Sources Root for each of them. You must mark them starting from the most nested, otherwise "Sources Root" option won't be available.
  2. Exclude the "cefpython/build/" directory by right clicking it and choosing "Mark Directory As" > Excluded
  3. Edit ".idea/inspectionProfiles/profiles_settings.xml" and set <option name="USE_PROJECT_PROFILE" value="true" />.
  4. Edit ".idea/inspectionProfiles/Project_Default.xml" and set these options:
<component name="InspectionProjectProfileManager">
  <profile version="1.0">
    <option name="myName" value="Project Default" />
    <inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyAttributeOutsideInitInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyBroadExceptionInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyMethodMayBeStaticInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
    <inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
      <option name="ignoredErrors">
        <list>
          <option value="N802" />
          <option value="N803" />
          <option value="N806" />
          <option value="N801" />
          <option value="N813" />
        </list>
      </option>
    </inspection_tool>
    <inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
      <option name="ignoredIdentifiers">
        <list>
          <option value="PY_MAJOR_VERSION" />
          <option value="CefJSDialogCallback" />
          <option value="CefBrowser" />
          <option value="CefFrame" />
          <option value="ClientHandler" />
          <option value="CefRequestContext" />
          <option value="RequestContextHandler" />
          <option value="dict.__getitem__" />
          <option value="dict.__setitem__" />
          <option value="list.__getitem__" />
          <option value="list.__setitem__" />
          <option value="tuple.__getitem__" />
          <option value="CefRequestContextHandler" />
          <option value="CefApp" />
          <option value="CefClient" />
          <option value="dict.__delitem__" />
          <option value="CefCommandLine" />
          <option value="CefListValue" />
          <option value="CefCallback" />
          <option value="CefCookieManager" />
          <option value="str.__add__" />
          <option value="UNAME_SYSNAME" />
          <option value="CefBinaryValue" />
          <option value="CefDictionaryValue" />
          <option value="CefString" />
          <option value="CefRect" />
          <option value="CefRequest" />
          <option value="CefAuthCallback" />
          <option value="CefRequestCallback" />
          <option value="CefResourceHandler" />
          <option value="CefWebPluginInfo" />
          <option value="CefResponse" />
          <option value="CefStringVisitor" />
          <option value="CefURLRequest" />
          <option value="CefCompletionCallback" />
          <option value="CefSetCookieCallback" />
          <option value="CefDeleteCookiesCallback" />
          <option value="CefProcessMessage" />
          <option value="CefPostData" />
          <option value="CefPostDataElement" />
          <option value="cpp_multimap" />
          <option value="cpp_vector" />
          <option value="CefTask" />
          <option value="CefURLRequestClient" />
          <option value="CefDragData" />
          <option value="UINT_MAX" />
          <option value="Debug" />
          <option value="long" />
          <option value="CefImage" />
          <option value="scoped_ptr" />
          <option value="MainMessageLoopExternalPump" />
          <option value="CefValue" />
          <option value="Cython.Includes.libcpp.vector.vector.begin" />
          <option value="Cython.Includes.libcpp.vector.vector.end" />
          <option value="preinc" />
          <option value="deref" />
          <option value="PyToCefStringValue" />
        </list>
      </option>
    </inspection_tool>
    <inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
      <option name="processCode" value="true" />
      <option name="processLiterals" value="true" />
      <option name="processComments" value="true" />
    </inspection_tool>
  </profile>
</component>

Templates usage like CefRefPtr[CefApp] always shows "unresolved reference" error - to fix it add CefApp and others to ignore list:

  • easy to do with alt+enter when cursor over that error
  • or Settings > Inspections > Python unresolved references > Ignore list > Add

Activity

  1. changed the title [-]Using PyCharm IDE to edit cefpython's Cython code[/-] [+]Configuring PyCharm IDE to for editing cefpython code[/+] on Aug 18, 2018
  2. changed the title [-]Configuring PyCharm IDE to for editing cefpython code[/-] [+]Configuring PyCharm IDE to for editing CEF Python code[/+] on Aug 18, 2018
  3. changed the title [-]Configuring PyCharm IDE to for editing CEF Python code[/-] [+]Configure PyCharm IDE[/+] on Aug 25, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions