python-pip:ImportError:無法導入名稱 main
我正在使用 Debian 9.5 Stretch 版本。使用 pip 時出現導入錯誤。當我嘗試使用 pip 時,它說:
我安裝了兩個版本的 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