Package: eric-ide
README for the eric7 IDE0. What is eric7?eric7 is a full featured Python editor and IDE, written in Python. It is based
on the cross platform Qt UI toolkit, integrating the highly flexible Scintilla
editor control. It is designed to be usable as everyday quick and dirty editor
as well as being usable as a professional project management tool integrating
many advanced features Python offers the professional coder. eric7 includes a
plug-in system, which allows easy extension of the IDE functionality with
plug-ins downloadable from the net. For more details seehttps://eric-ide.python-projects.org1. InstallationInstalling eric7 is a simple process. There are various methods available.
Please choose the one best suited to your needs and skills. eric7 must be used
withPython 3,Qt6andPyQt6.1.1 Create a Python virtual environment for eric7It is recommended to install eric7 into a Python virtual environment in order
to keep your Python distribution clean. In order to do that create it by
entering the following command in a terminal window.Linux, macOSpython3 -m venv eric7_venvWindowspython.exe -m venv eric7_venvReplaceeric7_venvwith the desired path to the directory for the virtual
environment. All further instructions will assume this environment name.1.2a Variant 1: Installation via the "install.py" scriptThis method results in the most complete install on all supported platforms.
After extracting the eric7 distribution archive just execute the following
command in a terminal window.Linux, macOS~/eric7_venv/bin/python3 install.pyWindowseric7_venv\Scripts\python.exe install.pyChange the path to the Python executable appropriately. The installation script
will check for all prerequisites and will ask for confirmation to install
them. If the installation process needs tuning type~/eric7_venv/bin/python3 install.py --helpfor some help. Using the--yesoption answers yes to all questions automatically.If you want to uninstall the package just execute theuninstall.pyscript.
This gets rid of all installed files. In this case please send an email to the
below mentioned address and tell me your reason. This might give me a hint on
how to improve eric7.During the installation process a file containing some information about the
installation will be created. If this is not desired, the--no-infocommand line option may be added to the above given install command.1.2b Variant 2: Installation via the Python Package Index PyPIThis method is the easiest one but does not create a macOS® Application. Enter
the following command in a terminal window.Linux, macOS~/eric7_venv/bin/python3 -m pip install --upgrade --prefer-binary eric-ideWindowseric7_venv\Scripts\python.exe -m pip install --upgrade --prefer-binary eric-ideOnce the installation is finished navigate to the executable directory of
the Python virtual environment and execute theeric7_post_installscript.
This will create application menu entries on Linux and desktop and start menu
entries on Windows® platforms.Linux~/eric7_venv/bin/eric7_post_installWindowseric7_venv\Scripts\eric7_post_install.exe1.3 Installation of Qt Tools via Qt online installerIn order to get the most out of eric7 it is recommended to install the Qt Tools
likeQt DesignerorQt Linguist. If the above shown installation
variants are executed, these tools will be installed automatically. Otherwise
it is recommended to get them from th Qt web site by following these steps.Download the Qt online installer from the Qt download site.Install Qt by executing the installer.Configure the path to the Qt tools on theQtconfiguration page of the
eric7 configuration dialog.2. RunningJust call up eric7_ide, which will start the IDE. Use the "What's This"-help
(arrow with ?) to get some help. The eric web site provides some
documents describing certain aspects of eric. To start the unit test module in
a standalone variant simply call up eric7_testing. This will show the same
dialog (though with a little bit less functionality) as if started from within
eric7_ide. The web browser can be started as a standalone program by executing the
eric7_browser script.Please note, the first time you start eric7_ide it will recognize, that it
has not been configured yet, and will show the configuration dialog.
Please take your time and go through all the configuration items.
However, every configuration option has a meaningful default value.3. Using eric7_ide on devices with small displayseric7_ide can be used on devices with displays smaller than full HD as well
(i.e. smaller than 1920 x 1080 pixels). If such a small screen is detected,
the interface using sidebars with just the left sidebar is chosen
automatically. This cannot be changed. If the auto-detection fails, use of
the small screen layout can be forced by starting eric7_ide with the--small-screencommand line option. This changes the respective settings
available via theInterface ⇨ Interfaceconfiguration page (optionsLayoutandCombine left and right sidebar.4. Running from the sourcesIf you want to run eric7_ide from within the source tree you have to execute
thecompileUiFiles.pyscript once after a fresh checkout from the source
repository or when new dialogs have been added. Thereafter just execute
theeric7_ide.pyscript.5. Tray startereric7 comes with a little utility callederic7_tray. This embeds an icon
in the system tray, which contains a context menu to start eric7 and all
it's utilities. Double clicking this icon starts the eric7 IDE.6. Completions/Calltipseric7 provides an interface to the QScintilla completion and call-tips
functionality. QScintilla2 comes with API files for Python and itself. PyQt6
and PyQt5 contain API files as well. These are installed by default. An API
file for eric7 is installed in the same place, if installation variant 1 was
chosen.In order to use completions and call-tips in eric7 please configure these
functions in thePreferences Dialogon theEditor -> APIs,Editor -> AutocompletionandEditor -> Calltipspages.In addition to theQScintillabased completions and calltips eric7 includes
a provider that is based on thejedipackage (installed automatically during
installation).Additional completions and call-tip providers are available through the eric7
plug-in system. See below for details.Each provider has a configuration page to adjust specific settings.7. Remote DebuggerIn order to enable the remote debugger start eric7, open the preferences
dialog and configure the settings on the debugger pages.The remote login must be possible without any further interaction (i.e.
no password prompt). If the remote setup differs from the local one you
must configure the Python interpreter and the Debug Client to be used
in the Preferences dialog. Use theinstall-debugclients.pyscript
to install the debug client files and set the entries of the a.m.
configuration page accordingly.To ease the installation process of the debug client, the eric7 sources
include the scriptinstall-debugclients.py.8. Passive DebuggingPassive debugging mode allows the startup of the debugger from outside
of the IDE. The IDE waits for a connection attempt. For further details
see the file README-passive-debugging.md.9. Plug-in Systemeric7 contains a plug-in system, that is used to extend eric7's
functionality. Some plug-ins are part of eric7. Additional plugins
are available via the Internet. Please use the built-in plug-in
repository dialog to get a list of available (official) plug-ins
and to download them. For more details about the plug-in system
please see the documentation area.10. Interfaces to additional software packagesAt the moment eric7 provides interfaces to the following software
packages.Qt-Designer
: This is part of the Qt distribution and is used to generate user
interfaces.Qt-Linguist
: This is part of the Qt distribution and is used to generate
translations.Qt-Assistant
: This is part of the Qt distribution and may be used to display help
files.Mercurial
: This is a distributed version control system available fromhttps://www.mercurial-scm.org/. It is
the one used by eric7 itself.Git
: This is another (and probably more widely known) distributed version
control system. It is available fromhttps://www.git-scm.com.Subversion
: This is a version control system available fromhttps://subversion.apache.org. eric7
supports two different Subversion interfaces. One is using the svn
command line tool, the other is using the PySvn Python interfacehttps://pysvn.sourceforge.io/. The
selection is done automatically depending on the installed software.
The PySvn interface is preferred. This automatism can be overridden an
a per project basis using theUser Propertiesdialog.pip
: This is a tool to install additional Python packages from the Python
Package Index (PyPI). It is available fromhttps://pypi.org/project/pip/.conda
: This is another tool to install additional Python packages and manage
virtual environments. It is available fromhttps://github.com/conda/condaorhttps://pypi.org/project/conda/.virtualenv
: This is a tool to create Python virtual environments. It is available
fromhttps://pypi.org/project/virtualenv/.:Note: Python 3 includes thevenvpackage, which can also be used
to create Python virtual environments. This package is preferred and
is used by eric in various places.coverage.py
: This is a tool to check Python code coverage. It is available fromhttp://www.nedbatchelder.com/code/modules/coverage.html.profile
: This is part of the standard Python distribution and is used to profile
Python source code.black
: This is a tool to format the source code according to the black formatting
rules. More information is available fromhttps://github.com/psf/black.isort
: This is a tool to sort the import statements of Python sources. More
information is available fromhttps://pycqa.github.io/isort/CycloneDX
: This is a tool to generate SBOM (Software Bill Of Material) files. For
more information seehttps://github.com/CycloneDX/cyclonedx-python11. Internationalizationeric7 and its tools are prepared to show the UI in different languages, which
can be configured via the preferences dialog. TheQtandQScintillatranslations are searched in the translations directory given in the
preferences dialog (Qt page). If the translations cannot be found, some part
of the HMI might show English texts even if you have selected something else.
If you are missing eric7 translations for your language and are willing to
volunteer for this work please send me an email naming the country code and
I will send you the respective Qt-Linguist file.12. Window Layouteric7 provides a configurable window layout. The visibility of the various tool
panes can be configured. The position of the shell pane may be configured as
well.13. Source code documentationeric7 has a built in source code documentation generator, which is
usable via the command line as well. For further details please see
the file README-eric7-doc.md.14. Included Toolseric7 comes with a long list of tools. These can be started via the eric7
tray starter or directly via the command line. They are available from within
the IDE. The included tools are (sorted alphabetically):eric7_api.py
: This is the tool to generate API files from Python source code.eric7_browser.py
: This is the eric7 web browser. It is a full blown browser based on
QtWebEngine, which is based on the Chromium web engine.eric7_compare.py
: This tool may be used to compare two files side-by-side. Differences
between the files are highlighted by coloring the text.eric7_configure.py
: This is the standalone variant of the configuration dialog. It offers
most of the configuration options as are available from within eric7.eric7_diff.py
: This tool may be used to view the differences between two files. These
are shown as a unified or context diff.eric7_doc.py
: This is the tool to extract source code documentation from source files
and format that as HTML files.eric7_editor.py
: This is a stripped down, standalone variant of the editor embedded in the
eric7 IDE.eric7_hexeditor.py
: This is a standalone hex editor to work with binary files.eric7_iconeditor.py
: This is a little tool to create pixel based icons and save them in a
pixmap format.eric7_pip.py
: This is a standalone variant of the built-in PyPI package management tool.eric7_plugininstall.py
: This is a standalone utility to install eric7 plug-ins available on the
local machine.eric7_pluginrepository.py
: This is a standalone variant of the plug-in repository window. It is used
to view the available plug-ins and download them to the local machine.eric7_pluginuninstall.py
: This is a standalone utility to uninstall eric7 plug-ins.eric7_qregularexpression.py
: This tool may be used to create regular expressions based on QRegularExpression.eric7_re.py
: This tool may be used to create Python regular expressions as used with the
re module.eric7_shell.py
: This is a standalone, graphical Python shell application.eric7_snap.py
: This tool may be used to create screenshots of the whole screen, individual
windows or selectable areas.eric7_sqlbrowser.py
: This is a simple tool to inspect SQL databases. All database products
supported by Qt may be inspected. Note, that Qt database drivers may be
installed first.eric7_testing
: This is a standalone tool to execute existing unit tests using the Python
built-in "unittest" package or the external "pytest" suite.eric7_tray.py
: This is the tray starter application. See above for some details.eric7_trpreviewer
: This tool may be used to preview translations of Qt forms. Forms and
language files may be loaded separately. Multiple languages can be loaded
and the active language can be switched between the loaded ones.eric7_uipreviewer
: This tool is used to preview Qt forms. The display may be switched between
the available Qt window styles.eric7_virtualenv
: This is a standalone tool to manage Python virtual environments. It is
like the integrated pane and offers the same functionality.15. Licenseeric7 (and the eric7 tools) is released under the conditions of the GPLv3. See
separate license fileLICENSE.GPL3for more details. Third party software
included in eric7 is released under their respective license and contained in
the eric7 distribution for convenience.16. Bugs and other reportsPlease send bug reports, feature requests or contributions to eric bugs
address. After the IDE is installed you can use theReport Bug...entry of the Help menu, which will send an email toeric-bugs@eric-ide.python-projects.org.
To request a new feature use theRequest Feature...entry of the Help menu, which
will send an email toeric-featurerequest@eric-ide.python-projects.org.Alternatively bugs may be reported via the eric7 issue tracker athttps://tracker.die-offenbachs.homelinux.org/.