Merge pull request #1 from realpython/master

Update the real python
This commit is contained in:
Manoj Kumar
2019-03-16 00:01:15 +05:30
committed by GitHub
31 changed files with 215 additions and 193 deletions
+5 -5
View File
@@ -59,8 +59,8 @@
<h3>Useful Links</h3> <h3>Useful Links</h3>
<ul> <ul>
<li><a href="https://docs.python-guide.org/">The Guide Website</a></li> <li><a href="https://docs.python-guide.org/">The Guide Website</a></li>
<li><a href="http://github.com/realpython/python-guide">The Guide @ GitHub</a></li> <li><a href="https://github.com/realpython/python-guide">The Guide @ GitHub</a></li>
<li><a href="http://github.com/realpython/python-guide/issues">Issue Tracker</a></li> <li><a href="https://github.com/realpython/python-guide/issues">Issue Tracker</a></li>
<li><a href="https://media.readthedocs.org/pdf/python-guide/latest/python-guide.pdf">The Guide as a PDF</a></li> <li><a href="https://media.readthedocs.org/pdf/python-guide/latest/python-guide.pdf">The Guide as a PDF</a></li>
</ul> </ul>
@@ -69,8 +69,8 @@
<li><a href="https://docs.python-guide.org/">English</a></li> <li><a href="https://docs.python-guide.org/">English</a></li>
<li><a href="https://python-guide-fr.readthedocs.io/fr/latest/">French</a></li> <li><a href="https://python-guide-fr.readthedocs.io/fr/latest/">French</a></li>
<li><a href="https://pythonguidecn.readthedocs.io/zh/latest/">Chinese</a></li> <li><a href="https://pythonguidecn.readthedocs.io/zh/latest/">Chinese</a></li>
<li><a href="http://python-guideja.readthedocs.io/ja/latest/">Japanese</a></li> <li><a href="https://python-guideja.readthedocs.io/ja/latest/">Japanese</a></li>
<li><a href="https://python-guide-kr.readthedocs.io/ko/latest/">Korean</a></li> <li><a href="https://python-guide-kr.readthedocs.io/ko/latest/">Korean</a></li>
<li><a href="http://python-guide-fil.readthedocs.io/en/latest/">Filipino</a></li> <li><a href="https://python-guide-fil.readthedocs.io/en/latest/">Filipino</a></li>
<li><a href="http://python-guide-pt-br.readthedocs.io/pt_BR/latest/">Brazilian Portuguese</a></li> <li><a href="https://python-guide-pt-br.readthedocs.io/pt_BR/latest/">Brazilian Portuguese</a></li>
</ul> </ul>
+8 -3
View File
@@ -11,7 +11,9 @@
# All configuration values have a default; values that are commented out # All configuration values have a default; values that are commented out
# serve to show the default. # serve to show the default.
import sys, os import datetime
import os
import sys
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
@@ -45,8 +47,11 @@ source_suffix = '.rst'
master_doc = 'index' master_doc = 'index'
# General information about the project. # General information about the project.
current_year = datetime.datetime.now().year
project = u'pythonguide' project = u'pythonguide'
copyright = u'20112018 <a href="http://kennethreitz.com/pages/open-projects.html">Kenneth Reitz</a> &amp; <a href="https://realpython.com">Real Python</a>. <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA 3.0</a>' copyright = (u'2011-{} <a href="http://kennethreitz.com/pages/open-projects.html">Kenneth Reitz</a>'
' &amp; <a href="https://realpython.com">Real Python</a>.'
' <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA 3.0</a>').format(current_year)
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
@@ -241,7 +246,7 @@ man_pages = [
epub_title = u'pythonguide' epub_title = u'pythonguide'
epub_author = u'Kenneth Reitz' epub_author = u'Kenneth Reitz'
epub_publisher = u'Kenneth Reitz' epub_publisher = u'Kenneth Reitz'
epub_copyright = u'20112018, Kenneth Reitz & Real Python' epub_copyright = u'2011{}, Kenneth Reitz & Real Python'.format(current_year)
# The language of the text. It defaults to the language option # The language of the text. It defaults to the language option
# or en if the language is not set. # or en if the language is not set.
+17 -17
View File
@@ -87,10 +87,10 @@ using ``<Tab>`` key or any other customized keys.
.. _indent: http://www.vim.org/scripts/script.php?script_id=974 .. _indent: http://www.vim.org/scripts/script.php?script_id=974
.. _syntax: http://www.vim.org/scripts/script.php?script_id=790 .. _syntax: http://www.vim.org/scripts/script.php?script_id=790
.. _Pyflakes: http://pypi.python.org/pypi/pyflakes/ .. _Pyflakes: http://pypi.org/project/pyflakes/
.. _pycodestyle: https://pypi.python.org/pypi/pycodestyle/ .. _pycodestyle: https://pypi.org/project/pycodestyle/
.. _syntastic: https://github.com/scrooloose/syntastic .. _syntastic: https://github.com/vim-syntastic/syntastic
.. _Python-mode: https://github.com/klen/python-mode .. _Python-mode: https://github.com/python-mode/python-mode
.. _SuperTab: http://www.vim.org/scripts/script.php?script_id=1643 .. _SuperTab: http://www.vim.org/scripts/script.php?script_id=1643
.. _vim-flake8: https://github.com/nvie/vim-flake8 .. _vim-flake8: https://github.com/nvie/vim-flake8
@@ -103,7 +103,7 @@ Emacs user is `Python Programming in Emacs`_ at EmacsWiki.
1. Emacs itself comes with a Python mode. 1. Emacs itself comes with a Python mode.
.. _Python Programming in Emacs: http://emacswiki.org/emacs/PythonProgrammingInEmacs .. _Python Programming in Emacs: https://www.emacswiki.org/emacs/PythonProgrammingInEmacs
TextMate TextMate
-------- --------
@@ -135,7 +135,7 @@ Atom
Atom is web native (HTML, CSS, JS), focusing on modular design and easy plugin Atom is web native (HTML, CSS, JS), focusing on modular design and easy plugin
development. It comes with native package control and a plethora of packages. development. It comes with native package control and a plethora of packages.
Recommended for Python development is Recommended for Python development is
`Linter <https://github.com/AtomLinter/Linter>`_ combined with `Linter <https://github.com/steelbrain/linter>`_ combined with
`linter-flake8 <https://github.com/AtomLinter/linter-flake8>`_. `linter-flake8 <https://github.com/AtomLinter/linter-flake8>`_.
@@ -163,7 +163,7 @@ MIT licensed.
Enthought Canopy Enthought Canopy
---------------- ----------------
`Enthought Canopy <https://www.enthought.com/products/canopy/>`_ is a Python `Enthought Canopy <https://www.enthought.com/product/canopy/>`_ is a Python
IDE which is focused towards Scientists and Engineers as it provides pre IDE which is focused towards Scientists and Engineers as it provides pre
installed libraries for data analysis. installed libraries for data analysis.
@@ -171,13 +171,13 @@ Eclipse
------- -------
The most popular Eclipse plugin for Python development is Aptana's The most popular Eclipse plugin for Python development is Aptana's
`PyDev <http://pydev.org>`_. `PyDev <https://pydev.org>`_.
Komodo IDE Komodo IDE
---------- ----------
`Komodo IDE <http://www.activestate.com/komodo-ide>`_ is developed by `Komodo IDE <https://www.activestate.com/products/komodo-ide/>`_ is developed by
ActiveState and is a commercial IDE for Windows, Mac, and Linux. ActiveState and is a commercial IDE for Windows, Mac, and Linux.
`KomodoEdit <https://github.com/Komodo/KomodoEdit>`_ is the open source `KomodoEdit <https://github.com/Komodo/KomodoEdit>`_ is the open source
alternative. alternative.
@@ -188,8 +188,8 @@ Spyder
`Spyder <https://github.com/spyder-ide/spyder>`_ is an IDE specifically geared `Spyder <https://github.com/spyder-ide/spyder>`_ is an IDE specifically geared
toward working with scientific Python libraries (namely toward working with scientific Python libraries (namely
`SciPy <http://www.scipy.org/>`_). It includes integration with pyflakes_, `SciPy <https://www.scipy.org/>`_). It includes integration with pyflakes_,
`pylint <http://www.logilab.org/857>`_ and `pylint <https://www.logilab.org/857>`_ and
`rope <https://github.com/python-rope/rope>`_. `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,
@@ -242,13 +242,13 @@ Virtual Environments
Virtual Environments provide a powerful way to isolate project package dependencies. This means that you can use packages particular to a Python project without installing them system wide and thus avoiding potential version conflicts. Virtual Environments provide a powerful way to isolate project package dependencies. This means that you can use packages particular to a Python project without installing them system wide and thus avoiding potential version conflicts.
To start using and see more information: To start using and see more information:
`Virtual Environments <http://github.com/kennethreitz/python-guide/blob/master/docs/dev/virtualenvs.rst>`_ docs. `Virtual Environments <https://github.com/kennethreitz/python-guide/blob/master/docs/dev/virtualenvs.rst>`_ docs.
pyenv pyenv
----- -----
`pyenv <https://github.com/yyuu/pyenv>`_ is a tool to allow multiple versions `pyenv <https://github.com/pyenv/pyenv-virtualenv>`_ is a tool to allow multiple versions
of the Python interpreter to be installed at the same time. This solves the of the Python interpreter to be installed at the same time. This solves the
problem of having different projects requiring different versions of Python. problem of having different projects requiring different versions of Python.
For example, it becomes very easy to install Python 2.7 for compatibility in For example, it becomes very easy to install Python 2.7 for compatibility in
@@ -264,7 +264,7 @@ pyenv. pyenv then works out which version of Python should be run based on
environment variables, ``.python-version`` files, and the global default. environment variables, ``.python-version`` files, and the global default.
pyenv isn't a tool for managing virtual environments, but there is the plugin pyenv isn't a tool for managing virtual environments, but there is the plugin
`pyenv-virtualenv <https://github.com/yyuu/pyenv-virtualenv>`_ which automates `pyenv-virtualenv <https://github.com/pyenv/pyenv-virtualenv>`_ which automates
the creation of different environments, and also makes it possible to use the the creation of different environments, and also makes it possible to use the
existing pyenv tools to switch to different environments based on environment existing pyenv tools to switch to different environments based on environment
variables or ``.python-version`` files. variables or ``.python-version`` files.
@@ -314,7 +314,7 @@ To download and install IPython with all its optional dependencies for the noteb
BPython BPython
------- -------
`bpython <http://bpython-interpreter.org/>`_ is an alternative interface to the `bpython <https://bpython-interpreter.org/>`_ is an alternative interface to the
Python interpreter for Unix-like operating systems. It has the following Python interpreter for Unix-like operating systems. It has the following
features: features:
@@ -334,8 +334,8 @@ features:
ptpython ptpython
-------- --------
`ptpython <https://github.com/jonathanslenders/ptpython/>`_ is a REPL build `ptpython <https://github.com/prompt-toolkit/ptpython>`_ is a REPL build
on top of the `prompt_toolkit <http://github.com/jonathanslenders/python-prompt-toolkit>`_ on top of the `prompt_toolkit <https://github.com/prompt-toolkit/python-prompt-toolkit>`_
library. It is considered to be an alternative to BPython_. Features include: library. It is considered to be an alternative to BPython_. Features include:
* Syntax highlighting * Syntax highlighting
+17 -17
View File
@@ -118,7 +118,7 @@ tutorial) and run:
.. code-block:: console .. code-block:: console
$ cd myproject $ cd project_folder
$ pipenv install requests $ pipenv install requests
Pipenv will install the excellent `Requests`_ library and create a ``Pipfile`` Pipenv will install the excellent `Requests`_ library and create a ``Pipfile``
@@ -156,7 +156,7 @@ when you share your project with others. You should get output similar to this
Adding requests to Pipfile's [packages]... Adding requests to Pipfile's [packages]...
P.S. You have excellent taste! ✨ 🍰 ✨ P.S. You have excellent taste! ✨ 🍰 ✨
.. _Requests: https://python-requests.org .. _Requests: http://docs.python-requests.org/en/master/
Using installed packages Using installed packages
@@ -200,7 +200,7 @@ Congratulations, you now know how to install and use Python packages! ✨ 🍰
Lower level: virtualenv Lower level: virtualenv
======================= =======================
`virtualenv <http://pypi.python.org/pypi/virtualenv>`_ is a tool to create `virtualenv <http://pypi.org/project/virtualenv>`_ is a tool to create
isolated Python environments. virtualenv creates a folder which contains all the isolated Python environments. virtualenv creates a folder which contains all the
necessary executables to use the packages that a Python project would need. necessary executables to use the packages that a Python project would need.
@@ -225,7 +225,7 @@ Basic Usage
.. code-block:: console .. code-block:: console
$ cd my_project_folder $ cd project_folder
$ virtualenv venv $ virtualenv venv
``virtualenv venv`` will create a folder in the current directory which will ``virtualenv venv`` will create a folder in the current directory which will
@@ -260,19 +260,19 @@ or change the interpreter globally with an env variable in ``~/.bashrc``:
$ source venv/bin/activate $ source venv/bin/activate
The name of the current virtual environment will now appear on the left of The name of the current virtual environment will now appear on the left of
the prompt (e.g. ``(venv)Your-Computer:your_project UserName$)`` to let you know the prompt (e.g. ``(venv)Your-Computer:project_folder UserName$)`` to let you know
that it's active. From now on, any package that you install using pip will be that it's active. From now on, any package that you install using pip will be
placed in the ``venv`` 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. For Windows, the same command mentioned in step 1 can be used to create a virtual environment. However, activating the environment requires a slightly different command.
Assuming that you are in project directory: Assuming that you are in your project directory:
.. code-block:: powershell .. code-block:: console
PS C:\Users\suryav> \venv\Scripts\activate C:\Users\SomeUser\project_folder> venv\Scripts\activate
Install packages as usual, for example: Install packages using the ``pip`` command:
.. code-block:: console .. code-block:: console
@@ -283,13 +283,13 @@ Install packages as usual, for example:
.. code-block:: console .. code-block:: console
$ deactivate $ deactivate
This puts you back to the system's default Python interpreter with all its This puts you back to the system's default Python interpreter with all its
installed libraries. installed libraries.
To delete a virtual environment, just delete its folder. (In this case, To delete a virtual environment, just delete its folder. (In this case,
it would be ``rm -rf my_project``.) it would be ``rm -rf project_folder``.)
After a while, though, you might end up with a lot of virtual environments After a while, though, you might end up with a lot of virtual environments
littered across your system, and it's possible you'll forget their names or littered across your system, and it's possible you'll forget their names or
@@ -366,23 +366,23 @@ Basic Usage
.. code-block:: console .. code-block:: console
$ mkvirtualenv my_project $ mkvirtualenv project_folder
This creates the :file:`my_project` folder inside :file:`~/Envs`. This creates the :file:`project_folder` folder inside :file:`~/Envs`.
2. Work on a virtual environment: 2. Work on a virtual environment:
.. code-block:: console .. code-block:: console
$ workon my_project $ workon project_folder
Alternatively, you can make a project, which creates the virtual environment, 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``. when you ``workon project_folder``.
.. code-block:: console .. code-block:: console
$ mkproject myproject $ mkproject project_folder
**virtualenvwrapper** provides tab-completion on environment names. It really **virtualenvwrapper** provides tab-completion on environment names. It really
helps when you have a lot of environments and have trouble remembering their helps when you have a lot of environments and have trouble remembering their
+3 -3
View File
@@ -28,11 +28,11 @@ include:
object serialization, and much more. object serialization, and much more.
Additionally, the Additionally, the
`Python Package Index <http://pypi.python.org/pypi/>`_ is available `Python Package Index <https://pypi.org>`_ is available
for users to submit their packages for widespread use, similar to for users to submit their packages for widespread use, similar to
Perl's `CPAN <http://www.cpan.org>`_. There is a thriving community Perl's `CPAN <https://www.cpan.org>`_. There is a thriving community
of very powerful Python frameworks and tools like of very powerful Python frameworks and tools like
the `Django <http://www.djangoproject.com>`_ web framework and the the `Django <https://www.djangoproject.com>`_ web framework and the
`NumPy <http://numpy.scipy.org>`_ set of math routines. `NumPy <http://numpy.scipy.org>`_ set of math routines.
* **integration with other systems** * **integration with other systems**
+19 -17
View File
@@ -41,14 +41,14 @@ thepythonguru.com is a tutorial focused on beginner programmers. It covers many
in depth. It also teaches you some advanced constructs of Python like lambda expressions and regular expressions. in depth. It also teaches you some advanced constructs of Python like lambda expressions and regular expressions.
And last it finishes off with the tutorial "How to access MySQL db using Python" And last it finishes off with the tutorial "How to access MySQL db using Python"
`Python for Beginners <http://thepythonguru.com/>`_ `Python for Beginners <https://thepythonguru.com/>`_
Learn Python Interactive Tutorial Learn Python Interactive Tutorial
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Learnpython.org is an easy non-intimidating way to get introduced to Python. Learnpython.org is an easy non-intimidating way to get introduced to Python.
The website takes the same approach used on the popular The website takes the same approach used on the popular
`Try Ruby <http://tryruby.org/>`_ website. It has an interactive Python `Try Ruby <https://ruby.github.io/TryRuby>`_ website. It has an interactive Python
interpreter built into the site that allows you to go through the lessons interpreter built into the site that allows you to go through the lessons
without having to install Python locally. without having to install Python locally.
@@ -65,9 +65,9 @@ resource for learning all aspects of the language.
Learn Python Step by Step Learn Python Step by Step
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
Techbeamers.com provides step-by-step tutorials to teach Python. Each tutorial is supplemented with logically added coding snippets and equips with a follow-up quiz on the subject learned. There is a section for `Python interview questions <http://www.techbeamers.com/python-interview-questions-programmers>`_ to help job seekers. You can also read essential `Python tips <http://www.techbeamers.com/essential-python-tips-tricks-programmers>`_ and learn `best coding practices <http://www.techbeamers.com/python-code-optimization-tips-tricks>`_ for writing quality code. Here, you'll get the right platform to learn Python quickly. Techbeamers.com provides step-by-step tutorials to teach Python. Each tutorial is supplemented with logically added coding snippets and equips with a follow-up quiz on the subject learned. There is a section for `Python interview questions <https://www.techbeamers.com/python-interview-questions-programmers>`_ to help job seekers. You can also read essential `Python tips <https://www.techbeamers.com/essential-python-tips-tricks-programmers>`_ and learn `best coding practices <https://www.techbeamers.com/python-code-optimization-tips-tricks>`_ for writing quality code. Here, you'll get the right platform to learn Python quickly.
`Learn Python Basic to Advanced <http://www.techbeamers.com/python-tutorial-step-by-step>`_ `Learn Python Basic to Advanced <https://www.techbeamers.com/python-tutorial-step-by-step>`_
Online Python Tutor Online Python Tutor
@@ -108,7 +108,7 @@ Learn Python the Hard Way
This is an excellent beginner programmer's guide to Python. It covers "hello This is an excellent beginner programmer's guide to Python. It covers "hello
world" from the console to the web. world" from the console to the web.
`Learn Python the Hard Way <http://learnpythonthehardway.org/book/>`_ `Learn Python the Hard Way <https://learnpythonthehardway.org/book/>`_
Crash into Python Crash into Python
@@ -117,7 +117,7 @@ Crash into Python
Also known as *Python for Programmers with 3 Hours*, this guide gives Also known as *Python for Programmers with 3 Hours*, this guide gives
experienced developers from other languages a crash course on Python. experienced developers from other languages a crash course on Python.
`Crash into Python <http://stephensugden.com/crash_into_python/>`_ `Crash into Python <https://stephensugden.com/crash_into_python/>`_
Dive Into Python 3 Dive Into Python 3
@@ -161,11 +161,11 @@ For those used to languages and figuring out puzzles on their own, this can be
a fun, attractive option. For those new to Python and programming, having an a fun, attractive option. For those new to Python and programming, having an
additional resource or reference will be helpful. additional resource or reference will be helpful.
`Python Koans <http://bitbucket.org/gregmalcolm/python_koans>`_ `Python Koans <https://bitbucket.org/gregmalcolm/python_koans>`_
More information about test driven development can be found at these resources: More information about test driven development can be found at these resources:
`Test Driven Development <http://en.wikipedia.org/wiki/Test-driven_development>`_ `Test Driven Development <https://en.wikipedia.org/wiki/Test-driven_development>`_
A Byte of Python A Byte of Python
@@ -178,13 +178,15 @@ no previous programming experience.
`A Byte of Python for Python 3.x <https://python.swaroopch.com/>`_ `A Byte of Python for Python 3.x <https://python.swaroopch.com/>`_
Learn to Program in Python with Codeacademy Computer Science Path on Codecademy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A Codeacademy course for the absolute Python beginner. This free and interactive course provides and teaches the basics (and beyond) of Python programming while testing the user's knowledge in between progress. A Codeacademy course for the absolute Python beginner. This free and interactive
course provides and teaches the basics (and beyond) of Python programming while
testing the user's knowledge in between progress.
This course also features a built-in interpreter for receiving instant feedback on your learning. This course also features a built-in interpreter for receiving instant feedback on your learning.
`Learn to Program in Python with Codeacademy <http://www.codecademy.com/en/tracks/python>`_ `Computer Science Path on Codecademy <https://www.codecademy.com/learn/paths/computer-science>`_
Code the blocks Code the blocks
@@ -220,7 +222,7 @@ pages, it is a very brief overview of some of the most common adapations
programmers need to make to become efficient intermediate level Python programmers need to make to become efficient intermediate level Python
programmers. programmers.
`Effective Python <http://www.effectivepython.com/>`_ `Effective Python <https://effectivepython.com/>`_
******** ********
@@ -251,7 +253,7 @@ and eventually an application, including a chapter on using zc.buildout. Later
chapters detail best practices such as writing documentation, test-driven chapters detail best practices such as writing documentation, test-driven
development, version control, optimization, and profiling. development, version control, optimization, and profiling.
`Expert Python Programming <http://www.packtpub.com/expert-python-programming/book>`_ `Expert Python Programming <https://www.packtpub.com/application-development/expert-python-programming>`_
A Guide to Python's Magic Methods A Guide to Python's Magic Methods
@@ -278,7 +280,7 @@ A Primer on Scientific Programming with Python, written by Hans Petter
Langtangen, mainly covers Python's usage in the scientific field. In the book, Langtangen, mainly covers Python's usage in the scientific field. In the book,
examples are chosen from mathematics and the natural sciences. examples are chosen from mathematics and the natural sciences.
`A Primer on Scientific Programming with Python <http://www.springer.com/mathematics/computational+science+%26+engineering/book/978-3-642-30292-3>`_ `A Primer on Scientific Programming with Python <https://www.springer.com/us/book/9783642302930#otherversion=9783642302923>`_
Numerical Methods in Engineering with Python Numerical Methods in Engineering with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -286,7 +288,7 @@ Numerical Methods in Engineering with Python
Numerical Methods in Engineering with Python, written by Jaan Kiusalaas, Numerical Methods in Engineering with Python, written by Jaan Kiusalaas,
puts the emphasis on numerical methods and how to implement them in Python. puts the emphasis on numerical methods and how to implement them in Python.
`Numerical Methods in Engineering with Python <http://www.cambridge.org/us/academic/subjects/engineering/engineering-mathematics-and-programming/numerical-methods-engineering-python-2nd-edition>`_ `Numerical Methods in Engineering with Python <https://www.cambridge.org/us/academic/subjects/engineering/engineering-mathematics-and-programming/numerical-methods-engineering-python-2nd-edition>`_
******************** ********************
@@ -405,6 +407,6 @@ some commonly used piece of code, followed by an explanation of why the idiom
is important. It also contains two code samples for each idiom: the "Harmful" is important. It also contains two code samples for each idiom: the "Harmful"
way to write it and the "Idiomatic" way. way to write it and the "Idiomatic" way.
`For Python 2.7.3+ <http://www.amazon.com/Writing-Idiomatic-Python-2-7-3-Knupp/dp/1482372177/>`_ `For Python 2.7.3+ <https://www.amazon.com/Writing-Idiomatic-Python-Jeff-Knupp-ebook/dp/B00B5KG0F8/>`_
`For Python 3.3+ <http://www.amazon.com/Writing-Idiomatic-Python-Jeff-Knupp-ebook/dp/B00B5VXMRG/>`_ `For Python 3.3+ <https://www.amazon.com/Writing-Idiomatic-Python-Jeff-Knupp-ebook/dp/B00B5VXMRG/>`_
+4 -4
View File
@@ -32,7 +32,7 @@ Planet Python
This is an aggregate of Python news from a growing number of developers. This is an aggregate of Python news from a growing number of developers.
`Planet Python <http://planet.python.org>`_ `Planet Python <https://planetpython.org>`_
********* *********
@@ -42,7 +42,7 @@ This is an aggregate of Python news from a growing number of developers.
/r/python is the Reddit Python community where users contribute and vote on /r/python is the Reddit Python community where users contribute and vote on
Python-related news. Python-related news.
`/r/python <http://reddit.com/r/python>`_ `/r/python <https://reddit.com/r/python>`_
******************* *******************
@@ -70,7 +70,7 @@ Python Weekly
Python Weekly is a free weekly newsletter featuring curated news, articles, Python Weekly is a free weekly newsletter featuring curated news, articles,
new releases, jobs, etc. related to Python. new releases, jobs, etc. related to Python.
`Python Weekly <http://www.pythonweekly.com/>`_ `Python Weekly <https://www.pythonweekly.com/>`_
*********** ***********
@@ -80,7 +80,7 @@ Python News
Python News is the news section in the official Python web site Python News is the news section in the official Python web site
(www.python.org). It briefly highlights the news from the Python community. (www.python.org). It briefly highlights the news from the Python community.
`Python News <http://www.python.org/news/>`_ `Python News <http://www.python.org/blogs/>`_
******************** ********************
+1 -1
View File
@@ -30,5 +30,5 @@ If you'd like to contribute, there's plenty to do. Here's a short todo_ list.
.. include:: ../../TODO.rst .. include:: ../../TODO.rst
.. _GitHub: http://github.com/kennethreitz/python-guide/ .. _GitHub: https://github.com/kennethreitz/python-guide/
.. _todo: https://github.com/kennethreitz/python-guide/blob/master/TODO.rst .. _todo: https://github.com/kennethreitz/python-guide/blob/master/TODO.rst
+4 -1
View File
@@ -109,7 +109,10 @@ Command line examples:
$ run command --help $ run command --help
$ ls .. $ ls ..
Be sure to include the ``$`` prefix before each line. Be sure to include the ``$`` prefix before each line for Unix console examples.
For Windows console examples, use ``doscon`` or ``powershell`` instead of
``console``, and omit the ``$`` prefix.
Python interpreter examples: Python interpreter examples:
+5 -4
View File
@@ -392,10 +392,11 @@ Buildout
`Buildout <http://www.buildout.org>`_ is an open source software build tool. `Buildout <http://www.buildout.org>`_ is an open source software build tool.
Buildout is created using the Python programming language. It implements a Buildout is created using the Python programming language. It implements a
principle of separation of configuration from the scripts that do the setting up. principle of separation of configuration from the scripts that do the setting
Buildout is primarily used to download and set up dependencies in Python eggs up. Buildout is primarily used to download and set up dependencies in `Python
format of the software being developed or deployed. Recipes for build tasks in any eggs <https://stackoverflow.com/questions/2051192/what-is-a-python-egg>`_
environment can be created, and many are already available. format of the software being developed or deployed. Recipes for build tasks in
any environment can be created, and many are already available.
******* *******
+18 -19
View File
@@ -5,13 +5,12 @@ Command-line Applications
.. image:: /_static/photos/34435690330_11930b5987_k_d.jpg .. image:: /_static/photos/34435690330_11930b5987_k_d.jpg
Command-line applications, also referred to as Command-line applications, also referred to as `Console Applications
`Console Applications <http://en.wikipedia.org/wiki/Console_application>`_, <http://en.wikipedia.org/wiki/Console_application>`_, are computer programs
are computer programs designed to be used from a text interface, such as a designed to be used from a text interface, such as a `shell
`shell <http://en.wikipedia.org/wiki/Shell_(computing)>`_. Command-line <http://en.wikipedia.org/wiki/Shell_(computing)>`_. Command-line applications
applications usually accept various inputs as arguments, often referred to as usually accept various inputs as arguments, often referred to as parameters or
parameters or sub-commands, as well as options, often referred to as flags or sub-commands, as well as options, often referred to as flags or switches.
switches.
Some popular command-line applications include: Some popular command-line applications include:
@@ -29,9 +28,9 @@ Click
***** *****
`click <http://click.pocoo.org/>`_ is a Python package for creating `click <http://click.pocoo.org/>`_ is a Python package for creating
command-line interfaces in a composable way with as little code as command-line interfaces in a composable way with as little code as possible.
possible. This “Command-Line Interface Creation Kit” is highly This “Command-Line Interface Creation Kit” is highly configurable but comes
configurable but comes with good defaults out of the box. with good defaults out of the box.
****** ******
@@ -47,11 +46,11 @@ POSIX-style usage instructions.
Plac Plac
**** ****
`Plac <https://pypi.python.org/pypi/plac>`_ is a simple wrapper `Plac <https://pypi.org/project/plac>`_ is a simple wrapper
over the Python standard library `argparse <http://docs.python.org/2/library/argparse.html>`_, over the Python standard library `argparse <http://docs.python.org/2/library/argparse.html>`_,
which hides most of its complexity by using a declarative interface: the which hides most of its complexity by using a declarative interface: the
argument parser is inferred rather than written down by imperatively. This argument parser is inferred rather than written down imperatively. This
module targets especially unsophisticated users, programmers, sysadmins, module targets unsophisticated users, programmers, sysadmins,
scientists, and in general people writing throw-away scripts for themselves, scientists, and in general people writing throw-away scripts for themselves,
who choose to create a command-line interface because it is quick and simple. who choose to create a command-line interface because it is quick and simple.
@@ -72,12 +71,12 @@ sub-command to do the work.
Cement Cement
****** ******
`Cement <http://builtoncement.com/>`_ is an advanced CLI Application Framework. `Cement <http://builtoncement.com/>`_ is an advanced CLI Application
Its goal is to introduce a standard and feature-full platform Framework. Its goal is to introduce a standard and feature-full platform for
for both simple and complex command line applications as well both simple and complex command line applications as well as support rapid
as support rapid development needs without sacrificing quality. development needs without sacrificing quality. Cement is flexible, and its use
Cement is flexible, and its use cases span from the simplicity of a micro-framework cases span from the simplicity of a micro-framework to the complexity of a
to the complexity of a mega-framework. mega-framework.
*********** ***********
+5 -5
View File
@@ -12,9 +12,9 @@ C Foreign Function Interface
`CFFI <https://cffi.readthedocs.io/en/latest/>`_ provides a simple to use `CFFI <https://cffi.readthedocs.io/en/latest/>`_ provides a simple to use
mechanism for interfacing with C from both CPython and PyPy. It supports two mechanism for interfacing with C from both CPython and PyPy. It supports two
modes: an inline ABI compatibility mode (example provided below), which allows modes: an inline `ABI <https://stackoverflow.com/questions/2171177/what-is-an-application-binary-interface-abi>`_ compatibility mode (example provided below), which allows
you to dynamically load and run functions from executable modules (essentially you to dynamically load and run functions from executable modules (essentially
exposing the same functionality as LoadLibrary or dlopen), and an API mode, exposing the same functionality as `LoadLibrary <https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya>`_ or `dlopen <https://www.tldp.org/HOWTO/C++-dlopen/index.html>`_), and an API mode,
which allows you to build C extension modules. which allows you to build C extension modules.
ABI Interaction ABI Interaction
@@ -41,13 +41,13 @@ library for interfacing with C/C++ from CPython, and it provides not only
full access to the native C interface of most major operating systems (e.g., full access to the native C interface of most major operating systems (e.g.,
kernel32 on Windows, or libc on \*nix), but also provides support for loading kernel32 on Windows, or libc on \*nix), but also provides support for loading
and interfacing with dynamic libraries, such as DLLs or shared objects, at and interfacing with dynamic libraries, such as DLLs or shared objects, at
runtime. It does bring along with it a whole host of types for interacting runtime. It brings along with it a whole host of types for interacting
with system APIs, and allows you to rather easily define your own complex with system APIs, and allows you to rather easily define your own complex
types, such as structs and unions, and allows you to modify things such as types, such as structs and unions, and allows you to modify things such as
padding and alignment, if needed. It can be a bit crufty to use, but in padding and alignment, if needed. It can be a bit crufty to use, but in
conjunction with the `struct <https://docs.python.org/3.5/library/struct.html>`_ conjunction with the `struct <https://docs.python.org/3/library/struct.html>`_
module, you are essentially provided full control over how your data types get module, you are essentially provided full control over how your data types get
translated into something usable by a pure C(++) method. translated into something usable by a pure C/C++ method.
Struct Equivalents Struct Equivalents
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
+1 -1
View File
@@ -29,7 +29,7 @@ pooling are 100% automatic, powered by urllib3, which is embedded within
Requests. Requests.
- `Documentation <http://docs.python-requests.org/en/latest/index.html>`_ - `Documentation <http://docs.python-requests.org/en/latest/index.html>`_
- `PyPi <http://pypi.python.org/pypi/requests>`_ - `PyPi <http://pypi.org/project/requests>`_
- `GitHub <https://github.com/kennethreitz/requests>`_ - `GitHub <https://github.com/kennethreitz/requests>`_
+1 -1
View File
@@ -52,7 +52,7 @@ Also included is a command-line tool for exporting SQL data.
Django ORM Django ORM
********** **********
The Django ORM is the interface used by `Django <http://www.djangoproject.com>`_ The Django ORM is the interface used by `Django <https://www.djangoproject.com>`_
to provide database access. to provide database access.
It's based on the idea of It's based on the idea of
+38 -37
View File
@@ -14,8 +14,8 @@ Camelot
******* *******
`Camelot <http://www.python-camelot.com>`_ provides components for building `Camelot <http://www.python-camelot.com>`_ provides components for building
applications on top of Python, SQLAlchemy, and Qt. It is inspired by applications on top of Python, SQLAlchemy, and Qt. It is inspired by the Django
the Django admin interface. admin interface.
The main resource for information is the website: The main resource for information is the website:
http://www.python-camelot.com http://www.python-camelot.com
@@ -33,19 +33,17 @@ Cocoa
GTk GTk
*** ***
PyGTK provides Python bindings for the GTK+ toolkit. Like the GTK+ library .. note:: PyGTK provides Python bindings for the GTK+ toolkit. However, it has been superseded by PyGObject. PyGTK should not be used for new projects and existing projects should be ported to PyGObject.
itself, it is currently licensed under the GNU LGPL. It is worth noting that
PyGTK only currently supports the Gtk-2.X API (NOT Gtk-3.0). It is currently
recommended that PyGTK not be used for new projects and that existing
applications be ported from PyGTK to PyGObject.
******************** ********************
PyGObject aka (PyGi) PyGObject aka (PyGi)
******************** ********************
`PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_ provides Python bindings which gives access to the entire GNOME software platform. `PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_ provides Python
It is fully compatible with GTK+ 3. Here is a tutorial to get started with `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.io/en/latest/>`_. bindings which gives access to the entire GNOME software platform. It is fully
compatible with GTK+ 3. Here is a tutorial to get started with `Python GTK+ 3
Tutorial <https://python-gtk-3-tutorial.readthedocs.io/en/latest/>`_.
`API Reference <http://lazka.github.io/pgi-docs/>`_ `API Reference <http://lazka.github.io/pgi-docs/>`_
@@ -56,8 +54,8 @@ Kivy
`Kivy <http://kivy.org>`_ is a Python library for development of multi-touch `Kivy <http://kivy.org>`_ is a Python library for development of multi-touch
enabled media rich applications. The aim is to allow for quick and easy enabled media rich applications. The aim is to allow for quick and easy
interaction design and rapid prototyping, while making your code reusable interaction design and rapid prototyping, while making your code reusable and
and deployable. deployable.
Kivy is written in Python, based on OpenGL, and supports different input devices Kivy is written in Python, based on OpenGL, and supports different input devices
such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products, such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products,
@@ -101,52 +99,55 @@ http://www.riverbankcomputing.co.uk/software/pyqt/download
***************************** *****************************
PyjamasDesktop (pyjs Desktop) Pyjs Desktop (formerly Pyjamas Desktop)
***************************** *****************************
PyjamasDesktop is a port of Pyjamas. PyjamasDesktop is application widget set Pyjs Desktop is a application widget set for desktop and a cross-platform
for desktop and a cross-platform framework. (After release v0.6 PyjamasDesktop framework. It allows the exact same Python web application source code to be
is a part of Pyjamas (Pyjs)). Briefly, it allows the exact same Python web executed as a standalone desktop application.
application source code to be executed as a standalone desktop application.
`Python Wiki for PyjamasDesktop <http://wiki.python.org/moin/PyjamasDesktop>`_.
The main website: `pyjs Desktop <http://pyjs.org/>`_. The main website: `pyjs <http://pyjs.org/>`_.
** **
Qt Qt
** **
`Qt <http://qt-project.org/>`_ is a cross-platform application framework that `Qt <http://qt-project.org/>`_ is a cross-platform application framework that is
is widely used for developing software with a GUI but can also be used for widely used for developing software with a GUI but can also be used for non-GUI
non-GUI applications. applications.
*********** ***********
PySimpleGUI PySimpleGUI
*********** ***********
`PySimpleGUI <https://pysimplegui.readthedocs.io/>`_ is a wrapper for Tkinter and Qt (others on the way). The amount of code required to implement custom GUIs is much shorter using PySimpleGUI than if the same GUI were written directly using Tkinter or Qt. PySimpleGUI code can be "ported" between GUI frameworks by changing import statements. `PySimpleGUI <https://pysimplegui.readthedocs.io/>`_ is a wrapper for Tkinter
and Qt (others on the way). The amount of code required to implement custom
GUIs is much shorter using PySimpleGUI than if the same GUI were written
directly using Tkinter or Qt. PySimpleGUI code can be "ported" between GUI
frameworks by changing import statements.
.. code-block:: console .. code-block:: console
$ pip install pysimplegui $ pip install pysimplegui
PySimpleGUI is contained in a single PySimpleGUI.py file. Should pip installation be impossible, copying the PySimpleGUI.py file into a project's folder is all that's required to import and begin using. PySimpleGUI is contained in a single PySimpleGUI.py file. Should pip
installation be impossible, copying the PySimpleGUI.py file into a project's
folder is all that's required to import and begin using.
**** ****
Toga Toga
**** ****
`Toga <https://toga.readthedocs.io/en/latest/>`_ is a Python native, OS `Toga <https://toga.readthedocs.io/en/latest/>`_ is a Python native, OS native,
native, cross platform GUI toolkit. Toga consists of a library of base cross platform GUI toolkit. Toga consists of a library of base components with a
components with a shared interface to simplify platform-agnostic GUI shared interface to simplify platform-agnostic GUI development.
development.
Toga is available on mOS, Windows, Linux (GTK), and mobile platforms such Toga is available on mOS, Windows, Linux (GTK), and mobile platforms such as
as Android and iOS. Android and iOS.
** **
@@ -161,8 +162,8 @@ Both Tk and Tkinter are available on most Unix platforms, as well as on Windows
and Macintosh systems. Starting with the 8.0 release, Tk offers native look and and Macintosh systems. Starting with the 8.0 release, Tk offers native look and
feel on all platforms. feel on all platforms.
There's a good multi-language Tk tutorial with Python examples at There's a good multi-language Tk tutorial with Python examples at `TkDocs
`TkDocs <http://www.tkdocs.com/tutorial/index.html>`_. There's more information <http://www.tkdocs.com/tutorial/index.html>`_. There's more information
available on the `Python Wiki <http://wiki.python.org/moin/TkInter>`_. available on the `Python Wiki <http://wiki.python.org/moin/TkInter>`_.
@@ -170,12 +171,12 @@ available on the `Python Wiki <http://wiki.python.org/moin/TkInter>`_.
wxPython wxPython
******** ********
wxPython is a GUI toolkit for the Python programming language. It allows wxPython is a GUI toolkit for the Python programming language. It allows Python
Python programmers to create programs with a robust, highly functional programmers to create programs with a robust, highly functional graphical user
graphical user interface, simply and easily. It is implemented as a Python interface, simply and easily. It is implemented as a Python extension module
extension module (native code) that wraps the popular wxWidgets cross platform (native code) that wraps the popular wxWidgets cross platform GUI library, which
GUI library, which is written in C++. is written in C++.
**Install (Stable) wxPython** **Install (Stable) wxPython**
*go to http://www.wxpython.org/download.php#stable and download the appropriate *go to https://www.wxpython.org/pages/downloads/ and download the appropriate
package for your OS.* package for your OS.*
+4 -4
View File
@@ -10,19 +10,19 @@ Networking
Twisted Twisted
******* *******
`Twisted <http://twistedmatrix.com/trac/>`_ is an event-driven networking `Twisted <https://twistedmatrix.com/trac/>`_ is an event-driven networking
engine. It can be used to build applications around many different networking engine. It can be used to build applications around many different networking
protocols, including HTTP servers and clients, applications using SMTP, POP3, protocols, including HTTP servers and clients, applications using SMTP, POP3,
IMAP, or SSH protocols, instant messaging, IMAP, or SSH protocols, instant messaging,
and `much more <http://twistedmatrix.com/trac/wiki/Documentation>`_. and `much more <https://twistedmatrix.com/trac/wiki/Documentation>`_.
***** *****
PyZMQ PyZMQ
***** *****
`PyZMQ <http://zeromq.github.com/pyzmq/>`_ is the Python binding for `PyZMQ <https://zeromq.github.com/pyzmq/>`_ is the Python binding for
`ZeroMQ <http://www.zeromq.org/>`_, which is a high-performance asynchronous `ZeroMQ <http://zeromq.org/>`_, which is a high-performance asynchronous
messaging library. One great advantage of ZeroMQ is that it can be used for messaging library. One great advantage of ZeroMQ is that it can be used for
message queuing without a message broker. The basic patterns for this are: message queuing without a message broker. The basic patterns for this are:
+13 -2
View File
@@ -91,13 +91,24 @@ are available in the `matplotlib gallery
Pandas Pandas
------ ------
`Pandas <http://pandas.pydata.org/>`_ is data manipulation library `Pandas <http://pandas.pydata.org/>`_ is a data manipulation library
based on NumPy which provides many useful functions for accessing, based on NumPy which provides many useful functions for accessing,
indexing, merging, and grouping data easily. The main data structure (DataFrame) indexing, merging, and grouping data easily. The main data structure (DataFrame)
is close to what could be found in the R statistical package; that is, is close to what could be found in the R statistical package; that is,
heterogeneous data tables with name indexing, time series operations, and heterogeneous data tables with name indexing, time series operations, and
auto-alignment of data. auto-alignment of data.
xarray
------
`xarray <http://xarray.pydata.org/en/stable/>`_ is similar to Pandas, but it
is intended for wrapping multidimensional scientific data. By labelling the
data with dimensions, coordinates, and attributes, it makes complex
multidimensional operations clearer and more intuitive. It also wraps
matplotlib for quick plotting, and can apply most operations in parallel using
`dask <http://xarray.pydata.org/en/stable/dask.html>`_.
Rpy2 Rpy2
---- ----
@@ -149,7 +160,7 @@ add-ons are available for academics and researchers.
Canopy Canopy
------ ------
`Canopy <https://www.enthought.com/products/canopy/>`_ is another scientific `Canopy <https://www.enthought.com/product/canopy/>`_ is another scientific
Python distribution, produced by `Enthought <https://www.enthought.com/>`_. Python distribution, produced by `Enthought <https://www.enthought.com/>`_.
A limited 'Canopy Express' variant is available for free, but Enthought A limited 'Canopy Express' variant is available for free, but Enthought
charges for the full distribution. Free licenses are available for academics. charges for the full distribution. Free licenses are available for academics.
+4 -4
View File
@@ -76,7 +76,7 @@ C Extensions
Cython Cython
------ ------
`Cython <http://cython.org/>`_ implements a superset of the Python language `Cython <https://cython.org/>`_ implements a superset of the Python language
with which you are able to write C and C++ modules for Python. Cython also with which you are able to write C and C++ modules for Python. Cython also
allows you to call functions from compiled C libraries. Using Cython allows allows you to call functions from compiled C libraries. Using Cython allows
you to take advantage of Python's strong typing of variables and operations. you to take advantage of Python's strong typing of variables and operations.
@@ -448,14 +448,14 @@ Multiprocessing
.. _`PyPy`: http://pypy.org .. _`PyPy`: http://pypy.org
.. _`The GIL`: http://wiki.python.org/moin/GlobalInterpreterLock .. _`The GIL`: https://wiki.python.org/moin/GlobalInterpreterLock
.. _`guide`: http://www.dabeaz.com/python/UnderstandingGIL.pdf .. _`guide`: http://www.dabeaz.com/python/UnderstandingGIL.pdf
.. _`New GIL`: http://www.dabeaz.com/python/NewGIL.pdf .. _`New GIL`: http://www.dabeaz.com/python/NewGIL.pdf
.. _`Special care`: http://docs.python.org/c-api/init.html#threads .. _`Special care`: https://docs.python.org/c-api/init.html#threads
.. _`David Beazley's`: http://www.dabeaz.com/GIL/gilvis/measure2.py .. _`David Beazley's`: http://www.dabeaz.com/GIL/gilvis/measure2.py
.. _`concurrent.futures`: https://docs.python.org/3/library/concurrent.futures.html .. _`concurrent.futures`: https://docs.python.org/3/library/concurrent.futures.html
.. _`Future`: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future .. _`Future`: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Future
.. _`threading`: https://docs.python.org/3/library/threading.html .. _`threading`: https://docs.python.org/3/library/threading.html
.. _`stackoverflow post`: http://stackoverflow.com/questions/26688424/python-threads-are-printing-at-the-same-time-messing-up-the-text-output .. _`stackoverflow post`: https://stackoverflow.com/questions/26688424/python-threads-are-printing-at-the-same-time-messing-up-the-text-output
.. _`data race`: https://en.wikipedia.org/wiki/Race_condition .. _`data race`: https://en.wikipedia.org/wiki/Race_condition
.. _`Lock`: https://docs.python.org/3/library/threading.html#lock-objects .. _`Lock`: https://docs.python.org/3/library/threading.html#lock-objects
+1 -1
View File
@@ -43,7 +43,7 @@ untangle also supports loading XML from a string or a URL.
xmltodict xmltodict
********* *********
`xmltodict <http://github.com/martinblech/xmltodict>`_ is another simple `xmltodict <https://github.com/martinblech/xmltodict>`_ is another simple
library that aims at making XML feel like working with JSON. library that aims at making XML feel like working with JSON.
An XML file like this: An XML file like this:
+2 -2
View File
@@ -61,7 +61,7 @@ py2app no no yes yes MIT no yes yes
.. note:: .. note::
Freezing Python code on Linux into a Windows executable was only once Freezing Python code on Linux into a Windows executable was only once
supported in PyInstaller `and later dropped supported in PyInstaller `and later dropped
<http://stackoverflow.com/questions/2950971/cross-compiling-a-python-script-on-linux-into-a-windows-executable#comment11890276_2951046>`_. <https://stackoverflow.com/questions/2950971/cross-compiling-a-python-script-on-linux-into-a-windows-executable#comment11890276_2951046>`_.
.. note:: .. note::
All solutions need a Microsoft Visual C++ to be installed on the target machine, except py2app. All solutions need a Microsoft Visual C++ to be installed on the target machine, except py2app.
@@ -139,7 +139,7 @@ Prerequisite is to install :ref:`Python on Windows <install-windows>`. The last
3. (Optionally) `include icon <http://www.py2exe.org/index.cgi/CustomIcons>`_ 3. (Optionally) `include icon <http://www.py2exe.org/index.cgi/CustomIcons>`_
4. (Optionally) `one-file mode <http://stackoverflow.com/questions/112698/py2exe-generate-single-executable-file#113014>`_ 4. (Optionally) `one-file mode <https://stackoverflow.com/questions/112698/py2exe-generate-single-executable-file#113014>`_
5. Generate :file:`.exe` into :file:`dist` directory: 5. Generate :file:`.exe` into :file:`dist` directory:
+4 -4
View File
@@ -48,7 +48,7 @@ On Linux, you may also want to consider
For Python Developers For Python Developers
********************* *********************
If you're writing an open source Python module, `PyPI <http://pypi.python.org>`_ If you're writing an open source Python module, `PyPI <http://pypi.org>`_
, more properly known as *The Cheeseshop*, is the place to host it. , more properly known as *The Cheeseshop*, is the place to host it.
@@ -56,8 +56,8 @@ If you're writing an open source Python module, `PyPI <http://pypi.python.org>`_
Pip vs. easy_install Pip vs. easy_install
-------------------- --------------------
Use `pip <http://pypi.python.org/pypi/pip>`_. More details Use `pip <http://pypi.org/project/pip>`_. More details
`here <http://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install>`_. `here <https://stackoverflow.com/questions/3220404/why-use-pip-over-easy-install>`_.
Personal PyPI Personal PyPI
@@ -105,7 +105,7 @@ I got fooled by that, one time. But if you feel that creating a folder called
pypiserver pypiserver
++++++++++ ++++++++++
`pypiserver <https://pypi.python.org/pypi/pypiserver>`_ is a minimal PyPI `pypiserver <https://pypi.org/project/pypiserver>`_ is a minimal PyPI
compatible server. It can be used to serve a set of packages to easy_install compatible server. It can be used to serve a set of packages to easy_install
or pip. It includes helpful features like an administrative command or pip. It includes helpful features like an administrative command
(``-U``) which will update all its packages to their latest versions (``-U``) which will update all its packages to their latest versions
+2 -3
View File
@@ -38,7 +38,7 @@ it makes it much easier for you to use other third-party Python libraries.
Setuptools & Pip Setuptools & Pip
**************** ****************
The two most crucial third-party Python packages are `setuptools <https://pypi.python.org/pypi/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_. The two most crucial third-party Python packages are `setuptools <https://pypi.org/project/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_.
Once installed, you can download, install and uninstall any compliant Python software Once installed, you can download, install and uninstall any compliant Python software
product with a single command. It also enables you to add this network installation product with a single command. It also enables you to add this network installation
@@ -75,6 +75,5 @@ manage your virtual environments.
-------------------------------- --------------------------------
This page is a remixed version of `another guide <http://www.stuartellis.eu/articles/python-development-windows/>`_, This page is a remixed version of `another guide <https://www.stuartellis.name/articles/python-development-windows/>`_,
which is available under the same license. which is available under the same license.
+5 -5
View File
@@ -10,7 +10,7 @@ Installing Python 2 on Mac OS X
.. note:: .. note::
Check out our :ref:`guide for installing Python 3 on OS X<install3-osx>`. Check out our :ref:`guide for installing Python 3 on OS X<install3-osx>`.
The latest version of Mac OS X, High Sierra, **comes with Python 2.7 out of the box**. **Mac OS X comes with Python 2.7 out of the box.**
You do not need to install or configure anything else to use Python. Having said You do not need to install or configure anything else to use Python. Having said
that, I would strongly recommend that you install the tools and libraries that, I would strongly recommend that you install the tools and libraries
@@ -33,7 +33,7 @@ Let's install a real version of Python.
Before installing Python, you'll need to install a C compiler. The fastest way Before installing Python, you'll need to install a C compiler. The fastest way
is to install the Xcode Command Line Tools by running is to install the Xcode Command Line Tools by running
``xcode-select --install``. You can also download the full version of ``xcode-select --install``. You can also download the full version of
`Xcode <http://developer.apple.com/xcode/>`_ from the Mac App Store, or the `Xcode <https://developer.apple.com/xcode/>`_ from the Mac App Store, or the
minimal but unofficial minimal but unofficial
`OSX-GCC-Installer <https://github.com/kennethreitz/osx-gcc-installer#readme>`_ `OSX-GCC-Installer <https://github.com/kennethreitz/osx-gcc-installer#readme>`_
package. package.
@@ -50,9 +50,9 @@ package.
While OS X comes with a large number of Unix utilities, those familiar with While OS X comes with a large number of Unix utilities, those familiar with
Linux systems will notice one key component missing: a decent package manager. Linux systems will notice one key component missing: a decent package manager.
`Homebrew <http://brew.sh>`_ fills this void. `Homebrew <https://brew.sh>`_ fills this void.
To `install Homebrew <http://brew.sh/#install>`_, open :file:`Terminal` or To `install Homebrew <https://brew.sh/#install>`_, open :file:`Terminal` or
your favorite OS X terminal emulator and run your favorite OS X terminal emulator and run
.. code-block:: console .. code-block:: console
@@ -129,5 +129,5 @@ To start using this and see more information: :ref:`Virtual Environments <virtua
-------------------------------- --------------------------------
This page is a remixed version of `another guide <http://www.stuartellis.eu/articles/python-development-windows/>`_, This page is a remixed version of `another guide <https://www.stuartellis.name/articles/python-development-windows/>`_,
which is available under the same license. which is available under the same license.
+7 -7
View File
@@ -13,7 +13,7 @@ Installing Python 2 on Windows
First, download the `latest version <https://www.python.org/ftp/python/2.7.15/python-2.7.15.msi>`_ First, download the `latest version <https://www.python.org/ftp/python/2.7.15/python-2.7.15.msi>`_
of Python 2.7 from the official website. If you want to be sure you are installing a fully of Python 2.7 from the official website. If you want to be sure you are installing a fully
up-to-date version, click the Downloads > Windows link from the home page of the up-to-date version, click the Downloads > Windows link from the home page of the
`Python.org web site <http://python.org>`_ . `Python.org web site <https://python.org>`_ .
The Windows version is provided as an MSI package. To install it manually, just The Windows version is provided as an MSI package. To install it manually, just
double-click the file. The MSI package format allows Windows administrators to double-click the file. The MSI package format allows Windows administrators to
@@ -32,13 +32,13 @@ tedious, so add the directories for your default Python version to the :envvar:`
Assuming that your Python installation is in :file:`C:\\Python27\\`, add this to your Assuming that your Python installation is in :file:`C:\\Python27\\`, add this to your
:envvar:`PATH`: :envvar:`PATH`:
.. code-block:: console .. code-block:: doscon
C:\Python27\;C:\Python27\Scripts\ C:\Python27\;C:\Python27\Scripts\
You can do this easily by running the following in ``powershell``: You can do this easily by running the following in ``powershell``:
.. code-block:: console .. code-block:: powershell
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User") [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User")
@@ -57,7 +57,7 @@ makes it much easier for you to use other third-party Python libraries.
Setuptools + Pip Setuptools + Pip
**************** ****************
The two most crucial third-party Python packages are `setuptools <https://pypi.python.org/pypi/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_. The two most crucial third-party Python packages are `setuptools <https://pypi.org/project/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_.
Once installed, you can download, install and uninstall any compliant Python software Once installed, you can download, install and uninstall any compliant Python software
product with a single command. It also enables you to add this network installation product with a single command. It also enables you to add this network installation
@@ -68,9 +68,9 @@ pip by default.
To see if pip is installed, open a command prompt and run To see if pip is installed, open a command prompt and run
.. code-block:: console .. code-block:: doscon
$ command -v pip command -v pip
To install pip, `follow the official pip installation guide <https://pip.pypa.io/en/latest/installing/>`_ - this will automatically install the latest version of setuptools. To install pip, `follow the official pip installation guide <https://pip.pypa.io/en/latest/installing/>`_ - this will automatically install the latest version of setuptools.
@@ -92,5 +92,5 @@ To start using this and see more information: :ref:`Virtual Environments <virtua
-------------------------------- --------------------------------
This page is a remixed version of `another guide <http://www.stuartellis.eu/articles/python-development-windows/>`_, This page is a remixed version of `another guide <https://www.stuartellis.name/articles/python-development-windows/>`_,
which is available under the same license. which is available under the same license.
+2 -3
View File
@@ -67,7 +67,7 @@ This will launch the Python 3 interpreter.
Setuptools & Pip Setuptools & Pip
**************** ****************
The two most crucial third-party Python packages are `setuptools <https://pypi.python.org/pypi/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_. The two most crucial third-party Python packages are `setuptools <https://pypi.org/project/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_.
Once installed, you can download, install and uninstall any compliant Python software Once installed, you can download, install and uninstall any compliant Python software
product with a single command. It also enables you to add this network installation product with a single command. It also enables you to add this network installation
@@ -113,6 +113,5 @@ So, onward! To the :ref:`Pipenv & Virtual Environments <virtualenvironments-ref>
-------------------------------- --------------------------------
This page is a remixed version of `another guide <http://www.stuartellis.eu/articles/python-development-windows/>`_, This page is a remixed version of `another guide <https://www.stuartellis.name/articles/python-development-windows/>`_,
which is available under the same license. which is available under the same license.
+5 -5
View File
@@ -9,7 +9,7 @@ Installing Python 3 on Mac OS X
.. image:: /_static/photos/34435689480_2e6f358510_k_d.jpg .. image:: /_static/photos/34435689480_2e6f358510_k_d.jpg
The latest version of Mac OS X, High Sierra, **comes with Python 2.7 out of the box**. **Mac OS X comes with Python 2.7 out of the box.**
You do not need to install or configure anything else to use Python 2. These You do not need to install or configure anything else to use Python 2. These
instructions document the installation of Python 3. instructions document the installation of Python 3.
@@ -27,7 +27,7 @@ Doing it Right
Let's install a real version of Python. Let's install a real version of Python.
Before installing Python, you'll need to install GCC. GCC can be obtained Before installing Python, you'll need to install GCC. GCC can be obtained
by downloading `Xcode <http://developer.apple.com/xcode/>`_, the smaller by downloading `Xcode <https://developer.apple.com/xcode/>`_, the smaller
`Command Line Tools <https://developer.apple.com/downloads/>`_ (must have an `Command Line Tools <https://developer.apple.com/downloads/>`_ (must have an
Apple account) or the even smaller `OSX-GCC-Installer <https://github.com/kennethreitz/osx-gcc-installer#readme>`_ Apple account) or the even smaller `OSX-GCC-Installer <https://github.com/kennethreitz/osx-gcc-installer#readme>`_
package. package.
@@ -43,9 +43,9 @@ package.
While OS X comes with a large number of Unix utilities, those familiar with While OS X comes with a large number of Unix utilities, those familiar with
Linux systems will notice one key component missing: a package manager. Linux systems will notice one key component missing: a package manager.
`Homebrew <http://brew.sh>`_ fills this void. `Homebrew <https://brew.sh>`_ fills this void.
To `install Homebrew <http://brew.sh/#install>`_, open :file:`Terminal` or To `install Homebrew <https://brew.sh/#install>`_, open :file:`Terminal` or
your favorite OS X terminal emulator and run your favorite OS X terminal emulator and run
.. code-block:: console .. code-block:: console
@@ -139,5 +139,5 @@ So, onward! To the :ref:`Pipenv & Virtual Environments <virtualenvironments-ref>
-------------------------------- --------------------------------
This page is a remixed version of `another guide <http://www.stuartellis.eu/articles/python-development-windows/>`_, This page is a remixed version of `another guide <https://www.stuartellis.name/articles/python-development-windows/>`_,
which is available under the same license. which is available under the same license.
+6 -4
View File
@@ -12,7 +12,7 @@ It's a community system packager manager for Windows 7+. (It's very much like Ho
Once done, installing Python 3 is very simple, because Chocolatey pushes Python 3 as the default. Once done, installing Python 3 is very simple, because Chocolatey pushes Python 3 as the default.
.. code-block:: console .. code-block:: doscon
choco install python choco install python
@@ -24,12 +24,14 @@ Once you've run this command, you should be able to launch Python directly from
Setuptools + Pip Setuptools + Pip
**************** ****************
The two most crucial third-party Python packages are `setuptools <https://pypi.python.org/pypi/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_, The two most crucial third-party Python packages are `setuptools <https://pypi.org/project/setuptools>`_ and `pip <https://pip.pypa.io/en/stable/>`_,
which let you download, install and uninstall any compliant Python software which let you download, install and uninstall any compliant Python software
product with a single command. It also enables you to add this network installation product with a single command. It also enables you to add this network installation
capability to your own Python software with very little work. capability to your own Python software with very little work.
All supported versions of Python 3 include pip, so just make sure it's up to date:: All supported versions of Python 3 include pip, so just make sure it's up to date:
.. code-block:: doscon
python -m pip install -U pip python -m pip install -U pip
@@ -52,5 +54,5 @@ So, onward! To the :ref:`Pipenv & Virtual Environments <virtualenvironments-ref>
-------------------------------- --------------------------------
This page is a remixed version of `another guide <http://www.stuartellis.eu/articles/python-development-windows/>`_, This page is a remixed version of `another guide <https://www.stuartellis.name/articles/python-development-windows/>`_,
which is available under the same license. which is available under the same license.
+7 -7
View File
@@ -70,9 +70,9 @@ this in your ``__init__.py``:
Logging in an Application Logging in an Application
************************* *************************
The `twelve factor app <http://12factor.net>`_, an authoritative reference The `twelve factor app <https://12factor.net>`_, an authoritative reference
for good practice in application development, contains a section on for good practice in application development, contains a section on
`logging best practice <http://12factor.net/logs>`_. It emphatically `logging best practice <https://12factor.net/logs>`_. It emphatically
advocates for treating log events as an event stream, and for advocates for treating log events as an event stream, and for
sending that event stream to standard output to be handled by the sending that event stream to standard output to be handled by the
application environment. application environment.
@@ -192,9 +192,9 @@ Example Configuration Directly in Code
logger.debug('often makes a very good meal of %s', 'visiting tourists') logger.debug('often makes a very good meal of %s', 'visiting tourists')
.. _basic logging tutorial: http://docs.python.org/howto/logging.html#logging-basic-tutorial .. _basic logging tutorial: http://docs.python.org/3/howto/logging.html#logging-basic-tutorial
.. _logging configuration: https://docs.python.org/howto/logging.html#configuring-logging .. _logging configuration: https://docs.python.org/3/howto/logging.html#configuring-logging
.. _logging tutorial: http://docs.python.org/howto/logging.html .. _logging tutorial: http://docs.python.org/3/howto/logging.html
.. _configuring logging for a library: https://docs.python.org/howto/logging.html#configuring-logging-for-a-library .. _configuring logging for a library: https://docs.python.org/3/howto/logging.html#configuring-logging-for-a-library
.. _log record: https://docs.python.org/library/logging.html#logrecord-attributes .. _log record: https://docs.python.org/3/library/logging.html#logrecord-attributes
.. _requests source: https://github.com/kennethreitz/requests .. _requests source: https://github.com/kennethreitz/requests
+3 -3
View File
@@ -675,7 +675,7 @@ by the ``with`` statement. CustomOpen is first instantiated and then its
is finished executing, the ``__exit__`` method is then called. is finished executing, the ``__exit__`` method is then called.
And now the generator approach using Python's own And now the generator approach using Python's own
`contextlib <https://docs.python.org/2/library/contextlib.html>`_: `contextlib <https://docs.python.org/3/library/contextlib.html>`_:
.. code-block:: python .. code-block:: python
@@ -890,5 +890,5 @@ Runners
Further Reading Further Reading
*************** ***************
- http://docs.python.org/2/library/ - http://docs.python.org/3/library/
- http://www.diveintopython.net/toc/index.html - https://www.diveinto.org/python3/
+3 -3
View File
@@ -271,7 +271,7 @@ Idioms
A programming idiom, put simply, is a *way* to write code. The notion of A programming idiom, put simply, is a *way* to write code. The notion of
programming idioms is discussed amply at `c2 <http://c2.com/cgi/wiki?ProgrammingIdiom>`_ programming idioms is discussed amply at `c2 <http://c2.com/cgi/wiki?ProgrammingIdiom>`_
and at `Stack Overflow <http://stackoverflow.com/questions/302459/what-is-a-programming-idiom>`_. and at `Stack Overflow <https://stackoverflow.com/questions/302459/what-is-a-programming-idiom>`_.
Idiomatic Python code is often referred to as being *Pythonic*. Idiomatic Python code is often referred to as being *Pythonic*.
@@ -403,7 +403,7 @@ hand, the hash of the item will tell Python where in the set to look for
a matching item. As a result, the search can be done quickly, even if the a matching item. As a result, the search can be done quickly, even if the
set is large. Searching in dictionaries works the same way. For set is large. Searching in dictionaries works the same way. For
more information see this more information see this
`StackOverflow <http://stackoverflow.com/questions/513882/python-list-vs-dict-for-look-up-table>`_ `StackOverflow <https://stackoverflow.com/questions/513882/python-list-vs-dict-for-look-up-table>`_
page. For detailed information on the amount of time various common operations page. For detailed information on the amount of time various common operations
take on each of these data structures, see take on each of these data structures, see
`this page <https://wiki.python.org/moin/TimeComplexity?>`_. `this page <https://wiki.python.org/moin/TimeComplexity?>`_.
@@ -496,7 +496,7 @@ Then run it on a file or series of files to get a report of any violations.
optparse.py:472:29: E221 multiple spaces before operator optparse.py:472:29: E221 multiple spaces before operator
optparse.py:544:21: W601 .has_key() is deprecated, use 'in' optparse.py:544:21: W601 .has_key() is deprecated, use 'in'
The program `autopep8 <https://pypi.python.org/pypi/autopep8/>`_ can be used to The program `autopep8 <https://pypi.org/project/autopep8/>`_ can be used to
automatically reformat code in the PEP 8 style. Install the program with: automatically reformat code in the PEP 8 style. Install the program with:
.. code-block:: console .. code-block:: console
+1 -1
View File
@@ -274,7 +274,7 @@ This way if you ever switch to a newer Python version and no longer need the
unittest2 module, you can simply change the import in your test module without unittest2 module, you can simply change the import in your test module without
the need to change any other code. the need to change any other code.
`unittest2 <http://pypi.python.org/pypi/unittest2>`_ `unittest2 <http://pypi.org/project/unittest2>`_
mock mock