簡體   English   中英

Python`no module pip.__main__;`嘗試安裝模塊時出錯

[英]Python `no module pip.__main__;` error when trying to install a module

我的 Raspberry Pi 出現以下錯誤: No module named pip__main__; 'pip' is a package and cannot be directly executed No module named pip__main__; 'pip' is a package and cannot be directly executed

當我在終端輸入時: sudo python3 -m pip install mp3play

這是什么原因造成的,我該如何修復它以便我可以安裝模塊mp3play

Pip不僅是一個獨立的可執行文件,它也是一個python模塊。

實際上在python文檔中,它直接建議使用-m語法來使用pip安裝包。

請參閱https://docs.python.org/3.5/installing/index.html#basic-usage

標准打包工具都設計為從命令行使用。

以下命令將從Python Packaging Index安裝最新版本的模塊及其依賴項:

 python -m pip install SomePackage 

我的猜測是你的系統的pip (可執行文件)被pip可執行文件的python2版本所掩蓋。 但是聽起來你沒有安裝pip(模塊)這樣你的python3可執行文件就可以找到它,所以你可能需要專門重新安裝pip(模塊)。

對於那個使用python3 -m ensurepipdocs for ensurepip ),如果你的python3解釋器的persepctive不存在pip將安裝pip。

另一個問題可能是它在當前目錄中找到了一個名為pip的文件,可執行文件或目錄,並且它試圖將該pip視為一個模塊,它實際上並不是一個模塊。

如果不是我不確定。 但絕對不是因為pip不是模塊。

pip是一個獨立的可執行文件。 如果pip if在你的路徑中,你可以執行

pip install mp3play

如果pip不在您的路徑中,那么您需要導航到pip所在的目錄,然后執行上面的操作。

如果需要,請在命令中添加sudo

遇到的確切錯誤是由於pip是一個包,但-m用於執行模塊。

編輯: pip還附帶了幾個有用的別名函數,指向不同的Python安裝。 一般來說, pip指向你的主要Python安裝(你在簡單地執行python時輸入的pipV ), pipV其中V是一個數字,如23將安裝添加到你的主要版本Vpip3添加到你的python3環境) 。 最后有pipV.S其中V與之前相同, S是顛覆。 例如,Python 3.4的pip3.4安裝。

我有同樣的問題。 我發現舊的pip目錄是從python 2.7安裝中遺留下來的,位於C:\\Users\\my-username\\pip 這導致python嘗試從那里加載pip並失敗。

我刪除了該目錄,我的錯誤就變成了No module named pip

我還沒有解決問題,但我正在http://bugs.python.org/issue29586處理它

我有同樣的問題,之前的答案都沒有為我解決。

當我卸載並重新安裝python到我的電腦時出現錯誤。 因為看起來先前現有的pip版本沒有完全刪除,當我試圖用python -m pip install package導入它時,它實際上是試圖調用以前的版本。

要解決此問題,請先手動刪除以下位置的pip文件夾:

C:\Users\username\pip
C:\Users\username\AppData\Local\pip
C:\Users\username\AppData\Local\Programs\Python\Python**\lib\site-packages\pip***
C:\Python**\pip

然后下載get-pip.py

最后,導航到下載它的文件夾並運行:

python get-pip.py

此過程應重新安裝pip並解決問題。

解釋:

當現有的 pip 模塊在升級時可能會受到影響時,就會發生這種情況。

您可能會在site-packages觀察到,任何需要的文件/文件夾都已重命名為前導~ ,例如pip更改為~ip或帶有前導~的子文件夾。

因此,在引用模塊 pip 時,如果找不到所需的可執行文件。

出現這種情況的原因是

卸載軟件包時,pip 現在會將其重命名為無法導入的名稱,並且一旦確認一切都會成功(包括在進行升級時安裝新版本),它才會刪除這些文件夾。 如果出現故障,它會將它們重新命名。

解決方案:

除了@Djib2011的解決方案之外,您還可以使用全新安裝pip模塊:

py <-version> -m ensurepip --upgrade

其中<-version>是一個可選參數,可以替換為您遇到問題的 python 版本,例如-3.8

Python自帶了一個ensurepip模塊,可以在Python環境中安裝pip。 這將安裝 pip 模塊,該模塊最初與您一直使用的 python 版本一起打包。

發布您可以運行升級命令將 pip 移植到較新版本的帖子。

py <-version> -m pip install --upgrade pip

如果由於許可而遇到任何EnvironmentError則可以附加--user選項。

參考:

  1. 點安裝
  2. pip 如何使用前導破折號刪除錯誤安裝的軟件包

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM