Python Pip升级不会删除旧的Pip和中断

Python Pip升级不会删除旧的Pip和中断,python,ubuntu,pip,apt,Python,Ubuntu,Pip,Apt,编辑:我的问题不是关于如何立即让pip工作。正如你在问题中看到的,我通过重新链接解决了这个问题 问题是:在一个全新的*NIX系统上,什么是最佳的/pythonic实践? 有人可能希望拥有Python2的最新版本,尤其是带有pip和setuptools的Python3。一个受保护的虚拟环境似乎是一种方式,但无论如何,一个人必须从某个地方开始 那么建议是什么呢 从评论来看,似乎应该使用getpip.py脚本来安装,然后使用pip来安装virtualenv。我想如果想同时拥有Python2和Pytho

编辑:我的问题不是关于如何立即让pip工作。正如你在问题中看到的,我通过重新链接解决了这个问题

问题是:在一个全新的*NIX系统上,什么是最佳的/pythonic实践? 有人可能希望拥有Python2的最新版本,尤其是带有pip和setuptools的Python3。一个受保护的虚拟环境似乎是一种方式,但无论如何,一个人必须从某个地方开始

那么建议是什么呢

从评论来看,似乎应该使用
getpip.py
脚本来安装,然后使用pip来安装virtualenv。我想如果想同时拥有Python2和Python3,就必须同时完成这两项工作

这是几天前发生的事情:

Ubuntu 18.04和Python 2.7

我是一个很重的R用户,但是使用越来越多的Python。实际上,每次我在Linux或OSX上设置任何类型的自定义python环境时,都会出现一些问题,必须加以处理。。。。链接、二进制文件、路径、依赖项。每一次。现在有多少人坐在Ubuntu/Debian设备上安装python pip;pip安装——升级pip并-duh-它会坏吗?真的吗

特别是现在:我想在Web服务器上安装django,并从
apt install python pip
开始

然后我做了推荐的
pip安装——升级pip
,它安装了pip-18.0,但给出了消息
在/usr/lib/python2.7/dist包处不卸载pip

在那之后,
pip--version
抛出了一个错误

回溯(最近一次调用):文件“/usr/bin/pip”,第9行,在 从pip导入主

原来,旧的pip仍然位于
/usr/bin/pip
中,而新的pip位于
/usr/local/bin/pip

我用蛮力修复了它:

rm /usr/bin/pip
ln -s /usr/local/bin/pip /usr/bin/pip
我做的对吗?还是这是通往末日的道路

有没有一种通灵或优雅的方法来处理或预防这些问题


向您致以最诚挚的问候,并感谢您的建议。

我在调查了评论中的提示后得出的结论是:

  • Python与自身冲突
  • 不要试图避免这一点——应对它
  • 使用虚拟环境一致地处理不可避免的多个Python版本
  • 似乎对我来说效果最好。使用以下步骤安装第一个pyenv(1),更新它(2),使用pyenv(3)安装Pythons版本(本例中为3.5.6),将用户全局python设置为已安装版本(4),升级python包管理工具(5),并在虚拟python环境(6)中安装任何内容。
  • curl-Lhttps://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer |bash
  • pyenv更新
  • CONFIGURE\u OPTS=--启用共享pyenv安装3.5.6
  • pyenv global 3.5.6
  • pip安装--升级pip设置工具控制盘
  • pip安装ipython jupyter雪花连接器python seaborn
  • 一些依赖于共享库的python包需要(3)中的
    CONFIGURE\u OPTS=--enable shared
    seaborn
    没有它将无法安装

    请注意,
    pyenv
    安装版本包括包管理器
    pip
    。现在,每次调用python或pip everything都会引用正确的版本

    在MacOS bash和其他*NIXes中的脚本中引用python时,请使用
    #/usr/bin/env python

    您可以安装最新的python 2.7.15,并在必要时对其进行更改
    pyenv shell 2.7.15
    仅在需要运行临时脚本的特定shell会话时切换到Python2.7

    因为我使用了这个流程,所以我不再头疼了

    到目前为止,同样的设置在本地MacOS和基于Uubtu的远程jupyter笔记本服务器上都可以运行

    免责声明:我不是一名铁杆Python fullstack开发人员,但在数据科学管道中,只要有必要,我都会使用Python。因此,对于Python中的应用程序开发来说,这可能不是最好的解决方案,但是对于数据科学环境的一致性管理来说,它似乎工作得很好


    希望这有帮助。

    不要使用
    python-pip
    包。通过其他方式安装
    pip
    。使用包管理器安装包的一个版本,然后执行其他操作来升级包是没有意义的。如果这破坏了安装,不要感到惊讶。要么你按原样使用发行版提供的软件包,要么你“手动”处理它,我完全同意前面的评论。我想添加一个虚拟环境,如果你的问题都解决了,你可以从一个新的python安装开始(这是我假设的python方式),为什么要从python 2.7开始呢?使用Python3的某些版本,djongo可以完美地运行它。一旦你安装了python,django安装就是
    pip install django==2.1
    ,或者
    pip3 install django==2.1
    @GiacomoAlzetta这听起来是个好主意,但是我如何在没有apt的情况下安装pip呢?是的,这在一开始很正常,不要太担心你的python版本,一次一件事。我建议从源代码安装virtualenv,然后每个项目安装一个virtualenv,安装项目所需的软件包,其他什么都不安装,一旦安装完成,就可以执行pip冻结,所有依赖项都会神奇地出现。这都是好处!