.. _project-explorer: .. _panes-projects: ######## Projects ######## Spyder allows you to associate a given directory with a **Project**, which automatically saves and restores the files you have open in the :ref:`panes-editor` from the last time you opened that project. With the :guilabel:`Projects` pane, you can browse all your project's files, regardless of your current working directory or :ref:`panes-files` location. .. image:: /images/projects/projects-main.png :alt: Spyder showing Project Explorer and projects menu In addition, your project's root folder is used to set your working directory, and automatically added to the ``PYTHONPATH``, so you can easily ``import`` and work with any modules and packages you create inside of it. .. note:: Projects are completely optional and not imposed on users. All of Spyder' functionality (code completion, session saving, File Explorer, working directory, etc) is available without creating a :guilabel:`Project`. .. _panes-projects-creating: ================== Creating a Project ================== To create a :guilabel:`Project`, click the :guilabel:`New Project` entry in the :guilabel:`Projects` menu, choose whether you'd like to associate a :guilabel:`Project` with an existing directory or make a new one, and enter the :guilabel:`Project`'s name and path. .. image:: /images/projects/projects-new.gif :alt: Spyder showing opening a new project .. _panes-projects-using: ======================= Using the Projects Pane ======================= Once a :guilabel:`Project` is opened, the :guilabel:`Project` pane is shown, presenting a tree view of the current :guilabel:`Project`'s files and directories. It allows you to perform all the same :ref:`operations ` as Spyder's :ref:`panes-files` pane. .. image:: /images/projects/projects-standard.png :alt: Spyder Project Explorer, displaying a directory tree of project files .. _vcs-section: .. _panes-projects-vcs: ============================ Working with version control ============================ The :guilabel:`Project` pane has basic integration with the `Git`_ distributed version control system, just like :ref:`in the Files pane `. You can commit or browse a file, directory or the entire repository via the commands in the context menu. .. _Git: https://git-scm.com/ To use this functionality, the :guilabel:`Project` must be located in a ``git`` repository and the ``git`` and ``gitk`` commands must be on the system path. .. _panes-projects-related: ============= Related panes ============= * :ref:`panes-editor` * :ref:`panes-files`