Python packages (modules)
The difference between different methods of Python package management
I have been learning Python for a while, and I often encounter the problem of installing various packages, sometimes setup.py, sometimes easy_install, sometimes pip, and some concepts such as distutils , setuptools, etc., I am not sure who is who and when should I use what. Today I will clarify these concepts.
distutils
distutils is part of the Python standard library. Its original intention is to provide developers with a convenient packaging method and provide users with a convenient installation method.
For example, you create a package named foo, which contains a foo.py file, and you want to package it so that others can use it. At this time you need to write a setup.py file:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
Then run the command
$python setup.py sdist
Then you find that a folder named dist appears in the current directory, and there is a foo-1.0.tar.gz package in it. There are three files in this package, foo.py, setup.py, PKG-INFO. The first two files are the same as the two files we mentioned before. PKG-INFO is some information about the package. Then you can install foo-1.0.tar.gz for others.
When the installer wants to use this package, he only needs to unzip the foo-1.0.tar.gz file, and then run the command
$python setup install
The package will be automatically installed to the appropriate location in the system.
setuptools
setuptools is an enhancement to distutils, especially the introduction of package dependency management.
setuptools can create egg files for Python packages. The relationship between Python and egg files is equivalent to the relationship between java and jar packages.
The easy_install script provided by setuptools can be used to install the egg package. In addition, easy_install can automatically download relevant packages from PyPI and complete installation and upgrade.
easy_install provides a variety of ways to install and upgrade Python packages, such as:
easy_install SQLObject
easy_install -f http://pythonpaste.org/package_index.html SQLObject
easy_install http://example.com/path /to/MyPackage-1.2.3.tgz
easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg
easy_install --upgrade PyProtocols
Later, developers felt that setuptools was developed too slowly and forked it out The Distribute project was merged into the Distribute project, and then in August 2013, Distribute was merged back into setuptools 0.7.
pip
pip is a tool for installing and managing Python packages. It is an enhancement to easy_install. You can also automatically download and install packages from PyPI.
In pip,
All required packages must be downloaded before installation, so there will be no situation where one part is installed and the other part is not.
All installed packages will be tracked, so you can know why they are installed. Installed and uninstalled at the same time.
No need to use egg file.
Easy to use:
pip install pkg_name
pip uninstall pkg_name

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

The article discusses popular Python libraries like NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow, Django, Flask, and Requests, detailing their uses in scientific computing, data analysis, visualization, machine learning, web development, and H

In Python, how to dynamically create an object through a string and call its methods? This is a common programming requirement, especially if it needs to be configured or run...

Using python in Linux terminal...
