There are already many mature packages in the Python environment that can be installed to extend our programs.
For example, many times Python developers go to the PyPI site to find the package they want to use, and then install it. PyPI (Python package Index) is a site that obtains third-party python packages to complement the standard library.
In the process of installing a Python package, it often involves distutils, setuptools, distribute, setup.py, Easy_install, Easy_install, and Pip, among others.
Suddenly the package management of Python is messy, what are these tool relationships and how should I choose to use them?
The following is a brief introduction to the Python package management related to some of the content.
Python Package management tool
With so many Python package management tools, there's a little bit of a choice when it comes to Python. In fact, after checking the official documents of Python, the relationship between these tools is slowly cleared up, and there is no such confusion.
The following is a brief introduction to the package management tools in Python, respectively.
Distutils
Distutils is part of the Python standard library, which is designed to provide developers with a convenient way to package, while providing users with a convenient way to install.
The setup.py we often use is based on distutils, and can be packaged or installed through setup.py.
Looking at a simple example, find a directory to create three files foo.py, bar.py, and setup.py, where the contents of setup.py are as follows:
fromDistutils.coreImportSetupsetup (Name='FooBar', Version='1.0', author=' would', Author_email='[email protected]', the URL='http://www.cnblogs.com/wilber2013/', Py_modules=['Foo','Bar'],)
Then, running python setup.py sdist in that directory, you get the following output, and a "Foobar-1.0.zip" package is generated.
The user can unzip the package and execute the python setup.py Install, then use the two modules Foo and bar:
For more information on how to write setup.py, refer to the Setupscript section of the official Python documentation for yourself.
Setuptools and distribute
Setuptools is an enhancement to distutils, especially the introduction of package dependency Management. We can install Setuptools through ez_setup.py.
As for distribute, it is a branch version of Setuptools. The reason for branching is that some developers think Setuptools development is too slow. But now, distribute is merged back into the Setuptools, so you can think of them as the same thing.
Before you see setup.py can create a compressed package, and Setuptools uses a new file format (. Egg), you can create an egg file for the Python package. Setuptools can identify the. egg file and parse it, install it
Easy_install
Once the Setuptools/distribute is installed, we can use the Easy_install tool directly:
- install a package from PyPI : When using the easy_install Package command, Easy_install can automatically download the relevant packages from PyPI and complete the installation, upgrade
- Download a package installation : The easy_install package.tgz command allows you to install a package that has already been downloaded
- Install the Egg file : You can install a file in egg format via easy_install Package.egg
You can get help tips for this command with the easy_install--help command:
Based on the above analysis, you can see the relationship between Setuptools/distribute and Easy_install:
- Setuptools/distribute has expanded the distutils, providing more functionality
- Easy_install is a setuptools/distribute-based tool that facilitates the installation of packages and the provincial
Pip
Pip is currently the most popular Python package management tool and is used as a substitute for easy_install, but there is still a lot of functionality built on Setuptools.
Easy_install has a lot of disadvantages: The installation transaction is non-atomic, it only supports SVN, does not provide the Unload command, and you need to write a script to install a series of packages. Pip solves the above problems and has become a new fact standard.
Pip is very simple to use and supports installing a Python package from any address that can be accessed through a VCS or browser:
- Installation: pip install somepackage
- Uninstall: pip uninstall Somepackage
The following section of the article focuses on PIP-related content.
Using PIP
In Python, it is recommended to use PIP for Python package management, PIP installation and use is more convenient.
PIP installation
There are two common ways to install PIP:
- Download the get-pip.py file and execute the python get-pip.py for installation (if Setuptools is not installed, then get-pip.py will help install it)
- Now PIP source package, and then install through setup.py
Pip Common Commands
For Pip, the most commonly used is the pip--help , and with the help of the document, you can probably know how to use commands and parameters.
Pip Common Command collection:
Use |
Command |
Installing packages from PyPI |
Pip Install Somepackage |
Uninstalling packages |
Pip Uninstall Somepackage |
View to install the package |
PIP List |
View Upgradeable Packages |
Pip List--outdated |
Upgrade Packages |
Pip Install--upgrade somepackage |
View information about which files and paths are installed on the package |
Pip Show--files Somepackage |
Install the specified version number of the package |
Pip Install Somepackage # Latest Version Pip Install somepackage==1.0.4 # Specific Version Pip install ' somepackage>=1.0.4 ' # Minimum version |
Install packages based on dependent files |
Pip Freeze > Requirements.txt # Export a list of dependent files using PIP Pip Install-r requirements.txt # automatically installs the corresponding package according to the list of dependent files |
Summarize
This article describes the relationship between the various package management tools of Python, and I believe that through the introduction of this article, we will no longer distutils, setuptools, distribute, setup.py, Easy_install, Easy_ The nouns like install and pip are confusing.
After a general understanding of these Python package management tools, you should also know how to choose and use.
This article does not deal with how to create and publish a Python package, interested students can go to the Python official online search.
Python's Package management tool