我对在下载python包时必须使用上述命令的情况有些困惑。我试图根据这个问题的答案下载一个名为pyudev的包。我执行了以下命令:
sudo pip install python-pyudev但收到以下信息:
Downloading/unpacking python-pyudev
Could not find any downloads that satisfy the requirement python-pyudev
Cleaning up...
No distributions at all found for python-pyudev
Storing complete log in /home/vineet/.pip/pip.log然而,以下内容运作良好:
sudo apt-get install python-pyudev什么时候应该使用apt-get来安装软件包,什么时候使用python-pip?
发布于 2014-03-09 16:53:37
PyPI是Package索引库-- Python模块的存储库。
pip用于直接从PyPI下载和安装软件包。PyPI由Python软件基金会托管。它是一个专门的包管理器,只处理python包。
apt-get用于从Ubuntu存储库下载和安装包,这些存储库由Canonical托管。
从apt-get和pip安装python包的一些区别如下:
apt-get安装的python模块。apt-get,我们无法确定我们想要的package的版本。在这种情况下,pip可以帮助我们。我们可以安装以前上传到PyPI上的任何版本的包。在依赖关系冲突的情况下,这是非常有用的。apt-get在系统范围内安装python模块.我们不能只在我们的项目维塔列夫中安装模块。pip为我们解决了这个问题。如果我们在激活virtualenv之后使用pip,那么它就足够智能,只在我们的项目virtualenv中安装模块。如前所述,如果某个特定python包的版本已经安装在系统范围内,并且我们的项目之一需要同一个python包的旧版本,那么在这种情况下,我们可以使用virtualenv和pip来安装该版本的python包,而不会发生任何冲突。python-<package_name>,Python3包命名为python3-<package_name>。而对于pip,我们通常只需要对Python2和Python3包都使用<package_name>。apt-get和pip都是成熟的包管理器,在安装时自动安装任何其他包依赖项。你可以用任何你喜欢的人。但是,如果您需要安装一个特定版本的package,或者在一个虚拟环境中安装这个包,或者安装一个只托管在PyPI上的包;只有pip才能帮助您解决这个问题。否则,如果您不介意在系统范围内安装软件包,那么使用apt-get还是pip并不重要。
发布于 2018-05-08 13:22:53
我喜欢的方法是始终使用apt,并且只在Debian/Ubuntu存储库中还不能使用pip的情况下才使用该模块,但只在用户上下文- --user标志中使用。无论如何,通过使用pip,您必须从Ubuntu的存储库中获得安装的所有构建依赖项,或者自己提供它们,这可能是一项繁琐的任务。apt-get安装二进制包,而pip在下载后构建它们。不应该使用pip将模块安装到系统位置。这完全是错误的。始终使用--user标志将模块安装到本地位置。正确配置的PYTHONPATH允许python首先从家中获取模块,然后再安装带有apt-get的系统模块。
发布于 2020-06-15 21:45:01
这是在一个广泛链接的GitHub pip站点上的问题上就系统安装的pip和本地安装的pip提供的建议:
https://askubuntu.com/questions/431780
复制相似问题