apt-get install python-xxx与pip install

备忘录

我仍在尝试了解我遇到的这个问题,并且已经阅读了大量有关sudo apt-get install python-XXXvs的帖子pip install,并且我了解了它的精髓(apt-get是一个软件包回购,由完全不同的一群人管理,可以通过pip,auto -updates以及其他所有可用的更新(二进制等)。但是,有些特殊的事情我无法理解,也无法找到答案:

  1. 如果出于任何原因,如果我首先使用来安装软件包,例如numpy,sudo apt-get install numpy然后再进行安装pip install numpy怎么了?是否在其他地方使用不同版本(例如,.local / lib)中再次安装numpy ,所以现在我有两个独立的版本?导入时使用哪个?(如果我正确理解了它是分开的,并且apt-get是系统范围的,但是我已经看到对此问题的回答相互矛盾,例如,在这里

  2. 我注意到apt-get上的许多软件包与pip相比已经很旧了。例如在编写ipython 2.3.0 vs 4.0.3,numpy 1.10.2 vs 1.10.4,spyder 2.3.5 vs 2.3.8时。它有什么优势,首先sudo apt-get install后跟一个pip install还是那只是愚蠢的?

  3. 我注意到我的点数是1.5.6-如果您这样做的话,这是最新的时间点sudo apt-get install python-pip而在点子上是8.0.2!我相信这已经给我造成了问题,因为使用该旧版本,您可以一次又一次地安装相同的软件包,并且不会发出警告。而且不知何故,它不能覆盖旧版本。我意识到了这一点,因为我可以继续卸载相同的软件包(例如numpy),并且当我这样做时它仍然始终存在pip show numpy奇怪的是,总是显示相同的文件夹(.local /),但版本不同:S因此,我有两个与此相关的问题:

    一种。什么是安装pip的最佳方法?我目前倾向于sudo apt-get install python-pippip install pipsudo apt-get purge python-pip那明智吗?对我来说似乎有点荒谬。

    b。现在,我知道我的很多软件包都被重复安装弄乱了,可能是因为有些软件包是用apt-get安装的,后来又用pip 1.5.6多次安装了,检查重复和清理的最佳方法是什么?我猜想使用脚本来pip全部卸载并重新安装是不安全的吗?

PS:我不确定是否应该将其发布为新问题还是对原始问题的答复。由于这个问题更加简洁和笼统,我认为将其分开会更好。抱歉,如果我弄错了。

备忘录

对于档案库,经过反复试验,这是我发现的内容(回想起来,有些地方是有道理的,其他一些地方却很令人困惑)。

  • 如果您使用sudo apt-get install python-xyz该软件包,则该软件包显示在中pip list当然,您可以在python中导入它,但它不会出现在pip.get_installed_distributions()中。(显然相反是正确的。即,如果您这样做pip install xyz,它将不会出现在您的apt /突触中)

  • 之后,sudo apt-get install python-xyz如果执行此操作pip install xyz,则取决于您拥有的点子的版本。

OLD v1.5.6(Ubuntu PPA上的当前版本):

  • 此版本的pip(1.5.6)只会在其他位置安装xyz的新副本。您最终将获得多份副本,这会造成巨大的混乱。例如:

    • 来自apt-get的numpy是1.8.2,位于/usr/local/lib/python2.7/dist-packages
    • 来自pip的numpy在〜/ .local / lib / python2.7 / site-packages中为1.10.4
  • 如果我pip install numpy再次执行此操作,它将再次下载并安装。因此,您最终可能会遇到许多无法真正访问的不同版本。我可以做pip install numpy5倍,然后我就可以做pip uninstall numpy 5x显然,您可以注意不要这样做,但是有时其他软件的安装脚本会有些粗心,并且可能使事情变得混乱。令人难以置信的是,Ubuntu正式发布了该版本的pip。

新v8.0.2(pip本身的当前版本):

  • 较新版本的pip(例如,位于pip上的8.0.2)将拒绝安装相同的软件包,说明已满足要求。因此,您无法安装新版本。这是很好的行为(有关稍后获得此版本的pip的更多信息)。

  • 在这种情况下,您只能升级,即使用-U标志进行安装。

  • 但是,当您尝试pip install -U xyz使用sudo apt-get安装的软件包时,会得到权限错误,因为apt-get安装在/ usr /中,并且需要root访问权限才能在其中写入。

  • 因此AFAIK您别无选择sudo pip install -U xyz,只能进行更新。在这种情况下,pip将最新的软件包安装到sudo apt-get编写它的位置。例如在我的情况下/usr/local/lib/python2.7/dist-packages。很好

  • 还需要指出的是,apt上的软件包通常比pip上的软件包要旧得多(例如numpy v1.8.2与1.10.4,scipy 0.14.1与0.17.0,ipython 2.3与4.0.3,spyder 2.3.5与2.3.8)

所以我目前的想法是,以获得与大事情sudo apt-get,例如sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy pytho正鼻涕的Spyder

然后使用更新它们(或至少其中一些)sudo pip install -U

注意:从点子中获取新点子似乎非常重要(非常中继)

sudo apt-get install python-pip
sudo pip install -U pip

PS:我知道virtualenv,但现在不需要它了。我只需要一个开发环境。

这是一个小脚本,用于转储软件包,版本和路径的列表(但仅适用于pip安装的模块,不适用于apt-get的模块)

import pip
pp = pip.get_installed_distributions()
for p in sorted([p.location+"\t"+p.project_name+" ("+p.version+")" for p in pp]):
    print p

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

apt-get install python-xxx与pip install

来自分类Dev

sudo apt-get install python-pip失败

来自分类Dev

easy_install / pip或apt-get

来自分类Dev

无法使用 sudo apt-get install 安装或找到 python-pip 和 python-requests

来自分类Dev

是否建议同时执行“sudo apt-get install”、“sudo snap install”和“pip install --user”?

来自分类Dev

apt-get install -y

来自分类Dev

如何编译与apt-get install linux-image-xxx相同的内核

来自分类Dev

使用apt get install而不插入DVD?

来自分类Dev

apt-get install时的配置选项

来自分类Dev

找出“ apt-get install”做了什么

来自分类Dev

sudo apt-get install npm错误

来自分类Dev

apt-get install的语言环境错误

来自分类Dev

apt-get -f install问题

来自分类Dev

无法运行apt-get -f install

来自分类Dev

apt-get -f install建议删除python2.7并安装python3

来自分类Dev

sudo apt-get install -f install和sudo apt-get install -f有什么区别?

来自分类Dev

sudo apt-get install -f install和sudo apt-get install -f有什么区别?

来自分类Dev

执行apt-get install时找不到软件包dh_python

来自分类Dev

Apt-get install显示:处理时遇到错误:docutils-common python-docutils golismero

来自分类Dev

sudo apt-get install和sudo apt install有什么区别

来自分类Dev

sudo apt-get install和sudo apt-f install返回错误

来自分类Dev

完成easy_install pip后如何修复apt?

来自分类常见问题

apt-get install tzdata非交互式

来自分类Dev

dpkg -i和apt-get install之间的区别

来自分类Dev

Configuration Options while `apt-get install`ing

来自分类Dev

是否可以撤消apt-get install命令?

来自分类Dev

如何使用“ apt-get install”选择安装位置?

来自分类Dev

通过apt-get install安装Opencpu,不起作用

来自分类Dev

如何在后台运行“ apt-get install”?

Related 相关文章

  1. 1

    apt-get install python-xxx与pip install

  2. 2

    sudo apt-get install python-pip失败

  3. 3

    easy_install / pip或apt-get

  4. 4

    无法使用 sudo apt-get install 安装或找到 python-pip 和 python-requests

  5. 5

    是否建议同时执行“sudo apt-get install”、“sudo snap install”和“pip install --user”?

  6. 6

    apt-get install -y

  7. 7

    如何编译与apt-get install linux-image-xxx相同的内核

  8. 8

    使用apt get install而不插入DVD?

  9. 9

    apt-get install时的配置选项

  10. 10

    找出“ apt-get install”做了什么

  11. 11

    sudo apt-get install npm错误

  12. 12

    apt-get install的语言环境错误

  13. 13

    apt-get -f install问题

  14. 14

    无法运行apt-get -f install

  15. 15

    apt-get -f install建议删除python2.7并安装python3

  16. 16

    sudo apt-get install -f install和sudo apt-get install -f有什么区别?

  17. 17

    sudo apt-get install -f install和sudo apt-get install -f有什么区别?

  18. 18

    执行apt-get install时找不到软件包dh_python

  19. 19

    Apt-get install显示:处理时遇到错误:docutils-common python-docutils golismero

  20. 20

    sudo apt-get install和sudo apt install有什么区别

  21. 21

    sudo apt-get install和sudo apt-f install返回错误

  22. 22

    完成easy_install pip后如何修复apt?

  23. 23

    apt-get install tzdata非交互式

  24. 24

    dpkg -i和apt-get install之间的区别

  25. 25

    Configuration Options while `apt-get install`ing

  26. 26

    是否可以撤消apt-get install命令?

  27. 27

    如何使用“ apt-get install”选择安装位置?

  28. 28

    通过apt-get install安装Opencpu,不起作用

  29. 29

    如何在后台运行“ apt-get install”?

热门标签

归档