mirror of
https://github.com/kennethreitz/python-guide.git
synced 2026-06-05 14:50:19 +00:00
Merge branch 'master' into standard-american-english
This commit is contained in:
+36
-36
@@ -7,7 +7,7 @@ Your Development Environment
|
||||
Text Editors
|
||||
::::::::::::
|
||||
|
||||
Just about anything that can edit plain text will work for writing Python code,
|
||||
Just about anything that can edit plain text will work for writing Python code;
|
||||
however, using a more powerful editor may make your life a bit easier.
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ using ``<Tab>`` key or any other customized keys.
|
||||
Emacs
|
||||
-----
|
||||
|
||||
Emacs is another powerful text editor. It is fully programmable (lisp), but
|
||||
Emacs is another powerful text editor. It is fully programmable (Lisp), but
|
||||
it can be some work to wire up correctly. A good start if you're already an
|
||||
Emacs user is `Python Programming in Emacs`_ at EmacsWiki.
|
||||
|
||||
@@ -109,7 +109,7 @@ TextMate
|
||||
--------
|
||||
|
||||
`TextMate <http://macromates.com/>`_ brings Apple's approach to operating
|
||||
systems into the world of text editors. By bridging UNIX underpinnings and
|
||||
systems into the world of text editors. By bridging Unix underpinnings and
|
||||
GUI, TextMate cherry-picks the best of both worlds to the benefit of expert
|
||||
scripters and novice users alike.
|
||||
|
||||
@@ -117,8 +117,8 @@ Sublime Text
|
||||
------------
|
||||
|
||||
`Sublime Text <http://www.sublimetext.com/>`_ is a sophisticated text
|
||||
editor for code, markup and prose. You'll love the slick user interface,
|
||||
extraordinary features and amazing performance.
|
||||
editor for code, markup, and prose. You'll love the slick user interface,
|
||||
extraordinary features, and amazing performance.
|
||||
|
||||
Sublime Text has excellent support for editing Python code and uses Python for
|
||||
its plugin API. It also has a diverse variety of plugins,
|
||||
@@ -133,7 +133,7 @@ Atom
|
||||
editors.
|
||||
|
||||
Atom is web native (HTML, CSS, JS), focusing on modular design and easy plugin
|
||||
development. It comes with native package control and plethora of packages.
|
||||
development. It comes with native package control and a plethora of packages.
|
||||
Recommended for Python development is
|
||||
`Linter <https://github.com/AtomLinter/Linter>`_ combined with
|
||||
`linter-flake8 <https://github.com/AtomLinter/linter-flake8>`_.
|
||||
@@ -156,7 +156,7 @@ Python (on Visual Studio Code)
|
||||
------------------------------
|
||||
|
||||
`Python for Visual Studio <https://marketplace.visualstudio.com/items?itemName=ms-python.python>`_ is an extension for the `Visual Studio Code IDE <https://code.visualstudio.com>`_.
|
||||
This is a free, light weight, open source IDE, with support for Mac, Windows, and Linux.
|
||||
This is a free, lightweight, open source IDE, with support for Mac, Windows, and Linux.
|
||||
Built using open source technologies such as Node.js and Python, with compelling features such as Intellisense (autocompletion), local and remote debugging, linting, and the like.
|
||||
|
||||
MIT licensed.
|
||||
@@ -192,7 +192,7 @@ toward working with scientific Python libraries (namely
|
||||
`pylint <http://www.logilab.org/857>`_ and
|
||||
`rope <https://github.com/python-rope/rope>`_.
|
||||
|
||||
Spyder is open-source (free), offers code completion, syntax highlighting,
|
||||
Spyder is open source (free), offers code completion, syntax highlighting,
|
||||
a class and function browser, and object inspection.
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ WingIDE
|
||||
-------
|
||||
|
||||
`WingIDE <http://wingware.com/>`_ is a Python specific IDE. It runs on Linux,
|
||||
Windows and Mac (as an X11 application, which frustrates some Mac users).
|
||||
Windows, and Mac (as an X11 application, which frustrates some Mac users).
|
||||
|
||||
WingIDE offers code completion, syntax highlighting, source browser, graphical
|
||||
debugger and support for version control systems.
|
||||
@@ -211,11 +211,11 @@ NINJA-IDE
|
||||
|
||||
`NINJA-IDE <http://www.ninja-ide.org/>`_ (from the recursive acronym: "Ninja-IDE
|
||||
Is Not Just Another IDE") is a cross-platform IDE, specially designed to build
|
||||
Python applications, and runs on Linux/X11, Mac OS X and Windows desktop
|
||||
Python applications, and runs on Linux/X11, Mac OS X, and Windows desktop
|
||||
operating systems. Installers for these platforms can be downloaded from the
|
||||
website.
|
||||
|
||||
NINJA-IDE is open-source software (GPLv3 licence) and is developed
|
||||
NINJA-IDE is open source software (GPLv3 licence) and is developed
|
||||
in Python and Qt. The source files can be downloaded from
|
||||
`GitHub <https://github.com/ninja-ide>`_.
|
||||
|
||||
@@ -224,11 +224,11 @@ Eric (The Eric Python IDE)
|
||||
--------------------------
|
||||
|
||||
`Eric <http://eric-ide.python-projects.org/>`_ is a full featured Python IDE
|
||||
offering sourcecode autocompletion, syntax highlighting, support for version
|
||||
control systems, python 3 support, integrated web browser, python shell,
|
||||
integrated debugger and a flexible plug-in system. Written in python, it is
|
||||
based on the Qt gui toolkit, integrating the Scintilla editor control. Eric
|
||||
is an open-source software project (GPLv3 licence) with more than ten years of
|
||||
offering source code autocompletion, syntax highlighting, support for version
|
||||
control systems, Python 3 support, integrated web browser, python shell,
|
||||
integrated debugger, and a flexible plug-in system. Written in Python, it is
|
||||
based on the Qt GUI toolkit, integrating the Scintilla editor control. Eric
|
||||
is an open source software project (GPLv3 licence) with more than ten years of
|
||||
active development.
|
||||
|
||||
|
||||
@@ -253,8 +253,8 @@ of the Python interpreter to be installed at the same time. This solves the
|
||||
problem of having different projects requiring different versions of Python.
|
||||
For example, it becomes very easy to install Python 2.7 for compatibility in
|
||||
one project, while still using Python 3.4 as the default interpreter.
|
||||
pyenv isn't just limited to the CPython versions - it will also install PyPy,
|
||||
anaconda, miniconda, stackless, jython, and ironpython interpreters.
|
||||
pyenv isn't just limited to the CPython versions – it will also install PyPy,
|
||||
Anaconda, miniconda, stackless, Jython, and IronPython interpreters.
|
||||
|
||||
pyenv works by filling a ``shims`` directory with fake versions of the Python
|
||||
interpreter (plus other tools like ``pip`` and ``2to3``). When the system
|
||||
@@ -276,7 +276,7 @@ IDLE
|
||||
----
|
||||
|
||||
:ref:`IDLE <python:idle>` is an integrated development environment that is
|
||||
part of Python standard library. It is completely written in Python and uses
|
||||
part of the Python standard distribution. It is completely written in Python and uses
|
||||
the Tkinter GUI toolkit. Though IDLE is not suited for full-blown development
|
||||
using Python, it is quite helpful to try out small Python snippets and
|
||||
experiment with different features in Python.
|
||||
@@ -294,18 +294,18 @@ IPython
|
||||
`IPython <http://ipython.org/>`_ provides a rich toolkit to help you make the
|
||||
most out of using Python interactively. Its main components are:
|
||||
|
||||
* Powerful Python shells (terminal- and Qt-based).
|
||||
* Powerful Python shells (terminal- and Qt-based)
|
||||
* A web-based notebook with the same core features but support for rich media,
|
||||
text, code, mathematical expressions and inline plots.
|
||||
* Support for interactive data visualization and use of GUI toolkits.
|
||||
* Flexible, embeddable interpreters to load into your own projects.
|
||||
* Tools for high level and interactive parallel computing.
|
||||
text, code, mathematical expressions and inline plots
|
||||
* Support for interactive data visualization and use of GUI toolkits
|
||||
* Flexible, embeddable interpreters to load into your own projects
|
||||
* Tools for high level and interactive parallel computing
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ pip install ipython
|
||||
|
||||
To download and install IPython with all it's optional dependencies for the notebook, qtconsole, tests, and other functionalities
|
||||
To download and install IPython with all its optional dependencies for the notebook, qtconsole, tests, and other functionalities:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@@ -318,14 +318,14 @@ BPython
|
||||
Python interpreter for Unix-like operating systems. It has the following
|
||||
features:
|
||||
|
||||
* In-line syntax highlighting.
|
||||
* Readline-like autocomplete with suggestions displayed as you type.
|
||||
* Expected parameter list for any Python function.
|
||||
* "Rewind" function to pop the last line of code from memory and re-evaluate.
|
||||
* Send entered code off to a pastebin.
|
||||
* Save entered code to a file.
|
||||
* Auto-indentation.
|
||||
* Python 3 support.
|
||||
* In-line syntax highlighting
|
||||
* Readline-like autocomplete with suggestions displayed as you type
|
||||
* Expected parameter list for any Python function
|
||||
* "Rewind" function to pop the last line of code from memory and re-evaluate
|
||||
* Send entered code off to a pastebin
|
||||
* Save entered code to a file
|
||||
* Auto-indentation
|
||||
* Python 3 support
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@@ -341,12 +341,12 @@ library. It is considered to be an alternative to BPython_. Features include:
|
||||
* Syntax highlighting
|
||||
* Autocompletion
|
||||
* Multiline editing
|
||||
* Emacs and VIM Mode
|
||||
* Emacs and Vim Modes
|
||||
* Embedding REPL inside of your code
|
||||
* Syntax Validation
|
||||
* Syntax validation
|
||||
* Tab pages
|
||||
* Support for integrating with IPython_'s shell, by installing IPython
|
||||
``pip install ipython`` and running ``ptipython``.
|
||||
(``pip install ipython``) and running ``ptipython``.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.. _pip-virtualenv:
|
||||
|
||||
Further Configuration of Pip and Virtualenv
|
||||
Further Configuration of pip and Virtualenv
|
||||
===========================================
|
||||
|
||||
.. image:: /_static/photos/34018732105_f0e6758859_k_d.jpg
|
||||
@@ -105,7 +105,7 @@ need any configuration.
|
||||
When using older versions, you can configure pip in such a way that it tries to
|
||||
reuse already installed packages, too.
|
||||
|
||||
On UNIX systems, you can add the following line to your :file:`.bashrc` or
|
||||
On Unix systems, you can add the following line to your :file:`.bashrc` or
|
||||
:file:`.bash_profile` file.
|
||||
|
||||
.. code-block:: console
|
||||
@@ -124,7 +124,7 @@ add the following line to your :file:`pip.ini` file under ``[global]`` settings:
|
||||
|
||||
download-cache = %HOME%\pip\cache
|
||||
|
||||
Similarly, on UNIX systems you should simply add the following line to your
|
||||
Similarly, on Unix systems you should simply add the following line to your
|
||||
:file:`pip.conf` file under ``[global]`` settings:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
+28
-14
@@ -212,7 +212,7 @@ Install virtualenv via pip:
|
||||
|
||||
$ pip install virtualenv
|
||||
|
||||
Test your installation
|
||||
Test your installation:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@@ -226,23 +226,26 @@ Basic Usage
|
||||
.. code-block:: console
|
||||
|
||||
$ cd my_project_folder
|
||||
$ virtualenv my_project
|
||||
$ virtualenv venv
|
||||
|
||||
``virtualenv my_project`` will create a folder in the current directory which will
|
||||
``virtualenv venv`` will create a folder in the current directory which will
|
||||
contain the Python executable files, and a copy of the ``pip`` library which you
|
||||
can use to install other packages. The name of the virtual environment (in this
|
||||
case, it was ``my_project``) can be anything; omitting the name will place the files
|
||||
case, it was ``venv``) can be anything; omitting the name will place the files
|
||||
in the current directory instead.
|
||||
|
||||
.. note::
|
||||
'venv' is the general convention used globally. As it is readily available in ignore files (eg: .gitignore')
|
||||
|
||||
This creates a copy of Python in whichever directory you ran the command in,
|
||||
placing it in a folder named :file:`my_project`.
|
||||
placing it in a folder named :file:`venv`.
|
||||
|
||||
You can also use the Python interpreter of your choice (like
|
||||
``python2.7``).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ virtualenv -p /usr/bin/python2.7 my_project
|
||||
$ virtualenv -p /usr/bin/python2.7 venv
|
||||
|
||||
or change the interpreter globally with an env variable in ``~/.bashrc``:
|
||||
|
||||
@@ -254,12 +257,20 @@ or change the interpreter globally with an env variable in ``~/.bashrc``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ source my_project/bin/activate
|
||||
$ source venv/bin/activate
|
||||
|
||||
The name of the current virtual environment will now appear on the left of
|
||||
the prompt (e.g. ``(my_project)Your-Computer:your_project UserName$)`` to let you know
|
||||
the prompt (e.g. ``(venv)Your-Computer:your_project UserName$)`` to let you know
|
||||
that it's active. From now on, any package that you install using pip will be
|
||||
placed in the ``my_project`` folder, isolated from the global Python installation.
|
||||
placed in the ``venv`` folder, isolated from the global Python installation.
|
||||
|
||||
For Windows, same command which is mentioned in step 1 can be used for creation of virtual environment. But, to activate, we use the following command.
|
||||
|
||||
Assuming that you are in project directory:
|
||||
|
||||
.. code-block:: powershell
|
||||
|
||||
PS C:\Users\suryav> \venv\Scripts\activate
|
||||
|
||||
Install packages as usual, for example:
|
||||
|
||||
@@ -281,9 +292,12 @@ To delete a virtual environment, just delete its folder. (In this case,
|
||||
it would be ``rm -rf my_project``.)
|
||||
|
||||
After a while, though, you might end up with a lot of virtual environments
|
||||
littered across your system, and its possible you'll forget their names or
|
||||
littered across your system, and it's possible you'll forget their names or
|
||||
where they were placed.
|
||||
|
||||
.. note::
|
||||
Python has included venv module from version 3.3. For more details: `venv <https://docs.python.org/3/library/venv.html>`_.
|
||||
|
||||
Other Notes
|
||||
~~~~~~~~~~~
|
||||
|
||||
@@ -293,7 +307,7 @@ for keeping the package list clean in case it needs to be accessed later.
|
||||
[This is the default behavior for ``virtualenv`` 1.7 and later.]
|
||||
|
||||
In order to keep your environment consistent, it's a good idea to "freeze"
|
||||
the current state of the environment packages. To do this, run
|
||||
the current state of the environment packages. To do this, run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@@ -302,7 +316,7 @@ the current state of the environment packages. To do this, run
|
||||
This will create a :file:`requirements.txt` file, which contains a simple
|
||||
list of all the packages in the current environment, and their respective
|
||||
versions. You can see the list of installed packages without the requirements
|
||||
format using "pip list". Later it will be easier for a different developer
|
||||
format using ``pip list``. Later it will be easier for a different developer
|
||||
(or you, if you need to re-create the environment) to install the same packages
|
||||
using the same versions:
|
||||
|
||||
@@ -343,7 +357,7 @@ To install (make sure **virtualenv** is already installed):
|
||||
|
||||
$ pip install virtualenvwrapper-win
|
||||
|
||||
In Windows, the default path for WORKON_HOME is %USERPROFILE%\Envs
|
||||
In Windows, the default path for WORKON_HOME is %USERPROFILE%\\Envs
|
||||
|
||||
Basic Usage
|
||||
~~~~~~~~~~~
|
||||
@@ -363,7 +377,7 @@ This creates the :file:`my_project` folder inside :file:`~/Envs`.
|
||||
$ workon my_project
|
||||
|
||||
Alternatively, you can make a project, which creates the virtual environment,
|
||||
and also a project directory inside ``$WORKON_HOME``, which is ``cd`` -ed into
|
||||
and also a project directory inside ``$WORKON_HOME``, which is ``cd``-ed into
|
||||
when you ``workon myproject``.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Reference in New Issue
Block a user