Debian

python-pip:ImportError:無法導入名稱 main

  • December 16, 2019

我正在使用 Debian 9.5 Stretch 版本。使用 pip 時出現導入錯誤。當我嘗試使用 pip 時,它說:

在此處輸入圖像描述

但是我可以使用python: 在此處輸入圖像描述

我安裝了兩個版本的 python:2.7 和 3.5

其中 pip 的輸出:/usr/bin/pip

當我嘗試使用 apt-get pip 重新安裝它時,第一次工作完全正常,但下一次它顯示相同的錯誤

的內容/usr/bin/

在此處輸入圖像描述 在此處輸入圖像描述

不知道是什麼問題。

這很可能是因為您在同一個前綴 ( ) 上使用了兩個不同的包管理器(dpkg或其前端apt-get和自身)。我假設要麼pip``/usr

  • 最近apt-get upgrade更新了一些依賴項,但安裝的其他一些文件pip沒有得到更新,因為dpkg根本apt-get不知道它們或
  • 您使用 刪除了一個包apt-get remove,並且apt-get不知道使用該包的任何內容(因為另一個包是由安裝的pip,因此不在dpkg數據庫中),它沒有警告您破壞其他包。

在不知道使用哪個軟體包管理器安裝了哪些軟體包的情況下,我無法為您提供有關如何修復系統的任何真正具體的建議,只能提供一般性建議:

**不要使用多個不同的包管理器。僅對文件系統的給定(子)樹使用一個包管理器,否則您將遇到不一致和/或衝突。Debian 的/usr樹包管理器被稱為dpkg,如果不呼叫它,*任何人都不*應該接觸。/usr

你會遇到的大多數與 python 相關的人都嘗試推送 pip,這當然無濟於事,甚至會告訴你sudo pip install; 不。有一些發行包包含 python 東西是有原因的。另請參閱AskUbuntu 上的這個相關問題StackOverflow 上的這個答案


您可以嘗試通過安裝一個新的 pip 來修復混亂

apt-get purge python-pip python3-pip
apt-get install python-pip python3-pip

但是,可能會留下可能會干擾的文件,dpkg因為它們是由pip. 萬無一失的方法是檢查所有文件/usr/lib/python*是否屬於 debian 包,如果不屬於,則毫無例外地刪除它們。

同樣,使用, , , …dpkg等前端工具來修改. 如果您需要在系統範圍內安裝任何無法作為包提供的東西,請創建一個包並使用 安裝它,或者將其安裝在.apt-get``aptitude``synaptic``/usr``.deb``dpkg``/usr/local

引用自:https://unix.stackexchange.com/questions/479676