pip:pip時拒絕訪問、pip未找到命令
1、背景
在公司的內網電腦上,使用pip install報錯拒絕訪問。

根據網上查到的經驗,要么是以管理員方式運行cmd,要么是在pip指令后加target參數修改安裝路徑,但是這兩種方式都無法起效果。
在cmd中輸入where pip
where pip
d:\用戶\xxx\Desktop\pypro\pip.exe
可以看到pip指令實際上是訪問可執行文件pip.exe,但是這里拒絕訪問,說明我們沒有訪問該文件的權限(因為如果是pip不存在,報錯內容應該是'pip' 不是內部或外部命令,也不是可運行的程序)。
后來經過分析,我發現應該是公司電腦上所有的pip都無法訪問(猜想是pip需要用超級管理員的權限),所以只能用別的方法。
2、解決
1)python -m pip install six.whl
在cmd中,使用python -m pip install six.whl指令代替pip指令來安裝離線包six,可以把包安裝在python同級目錄下的lib\site-package目錄下。(python -m代表以module的方式執行命令,前提是后邊的module確是python的一個包)。
究其原因,是因為python -m pip 是以python調用pip這個模塊的方式來執行pip命令的(也就是說pip其實也是python的一個module),此時你如果用python -m pip -V,可以不僅看到pip的版本,也可以看到這個pip module的路徑:

而在用where pip指令看pip的路徑時,會發現是另一個(可執行文件):

用python -m pip install xxx.whl安裝的包,都會被安裝到這里的pip上級目錄中,在這里就是D:\Python\Python3\lib\site-package中。此時你去這個目錄中,是可以看到剛剛安裝的包的。
2)import six
進入Python,使用import six導入剛剛裝好的包,如果導入成功,說明安裝完成(下文就不用再看了)。

如果導入失敗,說明還要修改python的import路徑。
3)修改python的import路徑
進入python輸入指令:
import sys sys.path

可以看到一系列的路徑,這里是import的module搜索路徑。
在第1步中的安裝路徑,如果沒有在這里,也是無法正常訪問安裝的包的,所以需要把之前的包安裝路徑加入sys.path中。
臨時生效
使用指令sys.path.append('路徑')可以把路徑加到sys.path中,本例中就是:
sys.path.append('D:\Python\Python3\lib\site-package')
此時再用sys.path,可以發現該路徑已在其中。
此時就能用import把之前下載的離線包導入進來了。
但是這種方式加入的包會在python重啟后失效,也就是我們需要每次都加。
永久生效
創建一個PYTHONPATH環境變量,把之前的那個路徑填進來即可。

此時sys.path中就永久加入了這個路徑。

浙公網安備 33010602011771號