簡體   English   中英

Python 即使“要求已在 Pip 中滿足”,也找不到模塊

[英]Python module not found even though "Requirement Already satisfied in Pip"

在 OS X 中寫一些 python,它說我用 pip 安裝了幾個包“ImportError:沒有名為請求的模塊”

運行 pip 安裝請求時

> sudo -H pip install requests 
Requirement already satisfied: requests in /usr/local/lib/python2.7/site-packages 
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python2.7/site-packages (from requests) 
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python2.7/site-packages (from requests) 
Requirement already satisfied: urllib3<1.22,>=1.21.1 in /usr/local/lib/python2.7/site-packages (from requests) 
Requirement already satisfied: idna<2.6,>=2.5 in /usr/local/lib/python2.7/site-packages (from requests)

它在 twindb_cloudflare、requests、group、tarutil 和 MySQL DB 上出錯。 我能夠在另一個腳本(在同一文件夾中)上運行完全相同的導入而不會出錯。

在命令提示符下運行。

pip list

如果您有舊版本,請檢查您在系統上安裝的版本。

嘗試卸載包...

pip uninstall requests

安裝后嘗試:

pip install requests

您還可以測試 pip 是否無法完成這項工作。

easy_install requests

就我而言,我運行的是 Jupyter 附帶的 python 版本,它顯然將模塊安裝在與默認位置不同的位置。 我通過在 Jupyter 中運行它發現了這一點:

import sys
sys.executable

這給了我

'/usr/local/Cellar/jupyterlab/3.0.13/libexec/bin/python3.9'

然后我可以在 Jupyter 中運行以下命令:

!/usr/local/Cellar/jupyterlab/3.0.13/libexec/bin/python3.9 -m pip install scipy matplotlib

然后我能夠導入我的模塊:

import scipy.stats
import matplotlib

我有同樣的問題(也在MAC OS中)並通過使用python3運行python腳本來解決它:python3 script.py

就我而言,我也在使用 pip3 而不是 pip。

我遇到了這個問題,終於找到了解決方案。

默認為用戶安裝,因為普通站點包不可寫

已滿足要求:/usr/lib/python3/dist-packages (2.2.12) 中的 django

使用“sudo”來交叉用戶安裝問題;

和 pip install --target=/usr/local/python3.7/site-packages --upgrade {module_name}

有人提到了這一點並為我工作。

如果您使用的是 Mac,可能是您使用 pip 安裝了模塊(意思是 python2,但您使用 python3 執行代碼,它沒有為 python2 安裝的模塊)。

Mac 將 python 版本 2 設置為默認值,通常不預裝 pip 或與版本 2 鏈接。我建議保持這種方式。 將版本 3 用於您的個人用例,並將您的 Mac 保留為默認版本 2。 由於您必須自己安裝 python3,這意味着您可能還想檢查/安裝 pip3。

檢查您是否安裝了 python 3:

python3 --version

檢查您是否安裝了 pip3(通常從 python 3.4 開始默認包含):

pip3 --version

檢查您使用 pip3 安裝了哪些軟件包:

pip3 list

如果您使用編輯器工具,請確保在運行文件時將其設置為使用 python3。

VS Code 示例:在右下角將 VS Code 設置為使用 Python3,打開 .py 文件時應該會看到:設置 Python 版本

現在,如果您想將任何模塊導入 python,請確保使用 pip3 安裝它們:

pip3 install package_name

如果遇到權限問題,可以考慮使用 sudo 權限運行命令:

sudo pip3 install package_name

只是為了分享我的發現,也許是一個新手錯誤,但在我的情況下,mariadb 是使用“sudo pip3 install mariadb”安裝的,我嘗試使用“python myscript.py”運行我的腳本,但沒有成功。 但是當我使用'python3 myscript.py'時我工作了,似乎你使用哪個pyhton很重要。

我的樹莓派 4 無法識別ipython命令,嘗試安裝 iPython 時顯示以下內容:

me@raspberrypi:~ $ sudo pip3 install ipython
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: ipython in /usr/lib/python3/dist-packages (5.8.0)
Requirement already satisfied: pexpect in /usr/lib/python3/dist-packages (from ipython) (4.6.0)

我知道這不是 PATH 問題,因為 iPython 是一個 pip 包。

我在/usr/lib/python3/dist-packages/下找到了一個IPython目錄,在這個目錄中我找到了程序__main__.py

運行__main__.py啟動 iPython:

python3 /usr/lib/python3/dist-packages/IPython/__main__.py

我在我的 .bashrc 文件中添加了以下別名,以允許我簡單地鍵入ipython

alias ipython='python3 /usr/lib/python3/dist-packages/IPython/__main__.py'

希望以上內容對您有所幫助。 上帝保佑

我對 PyPDF2 也有同樣的問題。 前一天它還在工作,但現在我無法導入。 當我再次安裝時,它告訴我已經安裝了。

在這里,我們需要知道它安裝在哪里以及從哪里導入。 當兩條路徑都匹配時,這個問題可能會得到解決。

或者如果存在版本問題,我們需要了解版本兼容性。 python 3.8xxx 將支持哪個版本的 PyPDF2

如果您安裝了 Python(python2),則可以使用以下命令安裝 pip(for python2)。

 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py python get-pip.py

現在您可以檢查 pip2 並嘗試運行您的程序

pip2 --version

我希望這些對你有幫助

方法一

如果您的系統安裝了多個 python 版本,比如在我的 ubuntu 中,默認情況下 python 版本是pythonpython3 ,那么 pip 也有不同的版本,比如pippip3 所以在這種情況下,通過特定的 python 版本使用-m訪問 pip

python3 -m pip install package_name

或者

python -m pip install package_name

如果您在 linux 上,請確保使用sudo

方法二

在第二種方法中,您需要找到安裝目錄(從哪里 python 查找模塊)。 為此運行以下python腳本

import sys
print(sys.path)

就我而言,它返回

['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/mudasir_habib/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']

這些是 python 用來查找模塊的路徑,我復制了dist-packages路徑。 所以現在通過提供安裝的目標路徑來運行命令,如下所示

python -m pip install package_name -t /your/copied/path

就我而言,我運行以下命令來解決我的問題

sudo python3 -m pip install keras -t /usr/lib/python3/dist-packages

我希望它可能會有所幫助

在我的 Windows 機器上,不止一個版本的 Python 安裝在不同的位置。 因此,當我嘗試將 Pillow 庫安裝為“pip install Pillow”時,它給出的消息是“要求已經滿足並顯示安裝了另一個版本的 Python 的另一個目錄的路徑”[在此處輸入圖像描述][1] [1 ]: https://i.stack.imgur.com/DLsuL.png

為了解決這個錯誤,我使用了帶有 PIP 命令的 --target 開關,如下所示: python -m pip install Pillow --target="c:\Program Files\Python310\Lib\site-packages"

它工作成功

如果您有錯誤提示您沒有模塊但由於錯誤消息表明您已經擁有它而無法安裝它您可能只需要檢查要導入的模塊的名稱。例如,它可能都是關於大寫和小寫字母或原始文件具有的另一個名稱。 您可以通過重命名文件輕松修復它:)

我在 Windows 安裝 pyModbusTCP 時遇到了這個問題。 我的解決方案與此處的另一個類似。 我必須以管理員身份運行 PowerShell,然后“pip install pyModbusTCP”按預期工作。

不確定它是否相關,但我遇到了類似的問題,直到我意識到我正在嘗試導入請求,但模塊名稱是 request s :p

暫無
暫無

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

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