Python包(模块)
Python包管理不同方式的区别
学习Python已经有一段时间,经常会遇到安装各种包的问题,一会 setup.py, 一会 easy_install,一会又是pip,还有一些概念比如distutils, setuptools等等,搞不清楚谁是谁,什么时候应该用什么,今天就把这些概念 澄清一下。
distutils
distutils是Python标准库的一部分,其初衷是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。
例如你创建了一个名为foo的包,包含一个foo.py文件,你想把它打包以便其它人使用。 这时候你需要写一个setup.py文件:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
然后运行命令
$python setup.py sdist
然后你发现当前目录下出现一个名为dist的文件夹,里面有一个foo-1.0.tar.gz的包。 这个包里有三个文件,foo.py, setup.py, PKG-INFO,前两个文件和我们之前提到的两个文件一样。 PKG-INFO是关于包的一些信息。然后你就可以把foo-1.0.tar.gz给别人安装了。
安装者要使用这个包时,只需要解压这个foo-1.0.tar.gz文件,再运行命令
$python setup install
这个包就会被自动安装到系统合适的位置。
setuptools
setuptools 是对 distutils 的增强, 尤其是引入了包依赖管理。
setuptools可以为Python包创建 egg文件, Python 与 egg 文件的关系,相当于java与jar包的关系。
setuptools 提供的 easy_install 脚本可以用来安装 egg包。 另外, easy_install 可以自动从 PyPI 上下载相关的包,并完成安装,升级。
easy_install 提供了多种安装,升级Python包的方式,例如:
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
后来开发者们觉得 setuptools 开发的太慢了,fork出了 Distribute 项目,然后2013年8月, Distribute 又合并回 setuptools 0.7。
pip
pip 是安装,管理Python包的工具。它是对 easy_install 的一种增强。 同样可以从 PyPI 上自动下载,安装包。
在pip中,
安装前所有需要的包都要先下载,所以不会出现安装了一部分,另一部分没安装的情况
所有安装的包会被跟踪,所以你可以知道为什么他们被安装,同时可以卸载。
无需使用 egg 文件。
使用方式简单:
pip install pkg_name
pip uninstall pkg_name

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Menggunakan Python di Terminal Linux ...

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...

Fastapi ...
