Python包(模块)管理
对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |