Home Backend Development Python Tutorial Python packages (modules)

Python packages (modules)

Oct 19, 2016 pm 01:33 PM

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


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the permissions problem encountered when viewing Python version in Linux terminal? How to solve the permissions problem encountered when viewing Python version in Linux terminal? Apr 01, 2025 pm 05:09 PM

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

How to efficiently copy the entire column of one DataFrame into another DataFrame with different structures in Python? How to efficiently copy the entire column of one DataFrame into another DataFrame with different structures in Python? Apr 01, 2025 pm 11:15 PM

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 in project and problem-driven methods within 10 hours? How to teach computer novice programming basics in project and problem-driven methods within 10 hours? Apr 02, 2025 am 07:18 AM

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 by the browser when using Fiddler Everywhere for man-in-the-middle reading? How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading? Apr 02, 2025 am 07:15 AM

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 without serving_forever()? How does Uvicorn continuously listen for HTTP requests without serving_forever()? Apr 01, 2025 pm 10:51 PM

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...

What are some popular Python libraries and their uses? What are some popular Python libraries and their uses? Mar 21, 2025 pm 06:46 PM

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

How to dynamically create an object through a string and call its methods in Python? How to dynamically create an object through a string and call its methods in Python? Apr 01, 2025 pm 11:18 PM

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...

How to solve permission issues when using python --version command in Linux terminal? How to solve permission issues when using python --version command in Linux terminal? Apr 02, 2025 am 06:36 AM

Using python in Linux terminal...

See all articles