赞
踩
在Ubuntu中,apt install python,默认是安装python2。
要安装python3, 要使用apt install python3。
安装后运行python、python2,调用的都是python2的程序,运行python3才是调用的python3。
所以,我们使用时要注意python版本的不同,如果需要运行时带上--version参数,确保使用的版本是正确的。
比如,python中的标准软件包管理器Pip命令,也可能是python2或python3的,就要注意,需要--version参数确认版本,或者调用时也会根据pip或pip3两种命令形式进行区分。
Pip的功能是允许我们安装和管理不属于Python标准库的额外软件包。Pip是伴随着Python(3.4和2.7.9版本之后)安装新包的一个重要工具。这些包是从PyPi的仓库中获取的,并自动与你的Python集成。
比如我的Ubuntu系统上运行的pip命令如下:
$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
Python3的pip安装:
$ sudo apt install python3-pip
也可以用Python命令检查pip版本:
python -m pip --version
比如在我的环境下用python3运行就是:
$python3 -m pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
有了pip,就可以在Ubuntu里安装python的package了:
$ pip install pip-install-test
Collecting pip-install-test
Downloading pip_install_test-0.5-py3-none-any.whl (1.7 kB)
Installing collected packages: pip-install-test
Successfully installed pip-install-test-0.5
也可以卸载某个包:
$ pip uninstall pip-install-test
Python可以安装的包,可以在PyPI网站查询:
PyPI · The Python Package Index
PyPI是Python软件包索引( Python Package index ),Python模块的存储库。
pip这个工具就是用来直接从PyPI下载和安装软件包的。PyPI是由Python软件基金会( Python Software Foundation)主持的。它是一个专门的软件包管理器,只处理Python软件包。
除了PyPI,在Linux Ubuntu中,还有其他方法。
比如我在运行某个pyton脚本时,出现个错误:
错误:
import requests
ModuleNotFoundError: No module named 'requests'
解决方法:
For Debian/Ubuntu Python2: sudo apt-get install python-requests
For Debian/Ubuntu Python3: sudo apt-get install python3-requests
Windows
Use pip install requests (or pip3 install requests for python3) if you have pip installed and Pip.exe added to the Path Environment Variable. If pip is installed but not in your path you can use python -m pip install requests (or python3 -m pip install requests for python3)
按照提示,我运行了下面命令就OK了:
$ sudo apt-get install python3-requests
所以有一些包,使用Ubuntu的apt-get命令也能够安装。
apt-get用于从Canonical托管的Ubuntu软件库下载和安装软件包。
从apt-get和pip安装python包的一些区别如下:
- Canonical只提供选定的python模块的包。而PyPI承载了更多的python模块。所以,有很多python模块是无法用apt-get安装的。
- Canonical只托管任何软件包的单一版本(通常是最新的或最近发布的版本)。所以,用apt-get我们无法决定我们想要的python-package的版本。在这种情况下,pip可以帮助我们。我们可以安装以前在PyPI上上传过的任何版本的包。这在依赖关系发生冲突的情况下是非常有帮助的。
- apt-get将python模块安装在全系统的位置。我们不能只在我们的项目virtualenv中安装模块,pip为我们解决了这个问题。如果我们在激活virtualenv后使用pip,它就会智能地只安装我们项目virtualenv中的模块。如前所述,如果在系统范围内已经安装了某一版本的python包,而我们的一个项目需要同一python包的旧版本,在这种情况下,我们可以使用virtualenv和pip来安装那个旧版本的python包,而不会有任何冲突。
- 软件包的名字也会有差异。Canonical通常将Python 2软件包命名为python-<package_name>,Python 3软件包命名为python3-<package_name>。而对于 pip 来说,我们一般只需要对 Python 2 和 Python3 包使用 <package_name>。
apt-get和pip都是成熟的软件包管理器,在安装时自动安装任何其他软件包的依赖。但是,如果你需要安装一个特定版本的python-package,或者在virtualenv中安装软件包,或者安装一个只在PyPI上托管的软件包;只有pip会帮助你解决这个问题。否则,如果你不介意在全系统范围内安装软件包,那么使用apt-get或pip其实并不重要。
关于Canonical:
科能软件有限公司(Canonical Ltd.) 是一家私人公司,由南非的企业家马克·沙特尔沃思创建,主要为了促进开源软件项目。Canonical在曼岛登记注册,其雇员分布在世界各地,其主要办事处在伦敦,在波士顿、圣保罗、蒙特利尔、上海、台北和马恩岛也有分公司。
Canonical公司支持并创建了几个项目,主要都是自由/开源软件(FOSS)或是一些旨在改善自由软件开发者和贡献者的工具。在2008年5月接受卫报采访时,马克·沙特尔沃思说,Canonical公司的商业模式主要是基于软件的服务,并解释说,Canonical还不能收支平衡,仍需要持续的投资。马克还说,我们认为软件的未来就是不需要授权的,人们可以在第一时间免费得到他们想要的软件,公司依赖软件的服务盈利,这是未来的发展趋势。 这个战略类似于Red Hat在20世纪90年代的经营战略。
Canonical发布Ubuntu,为Ubuntu提供商业服务和解决方案,并与硬件制造商、软件供应商和公共云合作。
参考:
PIP vs PIP3: What is the Difference? - Python Pool
software installation - apt-get install vs pip install - Ask Ubuntu
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。