Macのpython2に対応するpip3の問題を解決します(pipポインティングの問題)
同じことがPython3に対応するpipの問題を解決することができます。
一つ、問題
Macでpipとpip3のバージョンを確認してください。pip3に対応するPythonのバージョンは2.7です。
通常の状況では、pipはPython2に対応し、pip3はPython3に対応します。
二、解く
コマンドpipの絶対パスを表示するにはどちらを使用します。
~ » which pip
/usr/local/bin/pip
easy_installを使用してMacにpipをインストールすると、pipとpip3の両方がpipになります
~ » sudo easy_install pip littlechieh6@bogon
Password:
Searching for pip
Best match: pip 20.2b1
Processing pip-20.2b1-py2.7.egg
pip 20.2b1 is already the active version in easy-install.pth
Installing pip script to /usr/local/bin
Installing pip3.8 script to /usr/local/bin
Installing pip3 script to /usr/local/bin
Using /Library/Python/2.7/site-packages/pip-20.2b1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
-------------------------------------------------------------
~ » pip3 --version littlechieh6@bogon
pip 20.2b1 from /Library/Python/2.7/site-packages/pip-20.2b1-py2.7.egg/pip (python 2.7)
-------------------------------------------------------------
~ » pip --version littlechieh6@bogon
pip 20.2b1 from /Library/Python/2.7/site-packages/pip-20.2b1-py2.7.egg/pip (python 2.7)
または、bootstrap.pypa.io Webサイトのget-pip.pyスクリプトを使用してpip3をインストールします。これにより、pipとpip3の両方がpip3になります。
~/Desktop » curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--: 1 1842k 1 20565 0 0 43294 0 0:00:43 --:--: 50 1842k 50 935k 0 0 626k 0 0:00:02 0:00:100 1842k 100 1842k 0 0 848k 0 0:00:02 0:00:02 --:--:-- 848k
-------------------------------------------------------------
~/Desktop » sudo python3 get-pip.py
-------------------------------------------------------------
~/Desktop » pip --version littlechieh6@bogon
pip 20.3.3 from /Library/Python/3.8/site-packages/pip (python 3.8)
-------------------------------------------------------------
~/Desktop » pip3 --version littlechieh6@bogon
pip 20.3.3 from /Library/Python/3.8/site-packages/pip (python 3.8)
Python2とPython3の実行場所を表示する
~ » which python3 littlechieh6@bogon
/usr/bin/python3
-------------------------------------------------------------
~ » which python littlechieh6@bogon
/usr/bin/python
-------------------------------------------------------------
~ » ls -al /usr/bin/python3 littlechieh6@bogon
-rwxr-xr-x 1 root wheel 31488 Sep 22 08:29 /usr/bin/python3
-------------------------------------------------------------
~ » ls -al /usr/bin/python littlechieh6@bogon
lrwxr-xr-x 1 root wheel 75 Jul 1 08:44 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
pipの実行場所を表示する
~ » which pip littlechieh6@bogon
/usr/local/bin/pip
-------------------------------------------------------------
~ » which pip3 littlechieh6@bogon
/usr/local/bin/pip3
-------------------------------------------------------------
~ » ls -al /usr/local/bin/pip littlechieh6@bogon
-rwxr-xr-x 1 root admin 263 Dec 21 22:56 /usr/local/bin/pip
-------------------------------------------------------------
~ » ls -al /usr/local/bin/pip3 littlechieh6@bogon
-rwxr-xr-x 1 root admin 263 Dec 21 22:56 /usr/local/bin/pip3
元のpipおよびpip3スクリプトの重要なポイントは、スクリプト#!
を実行するためのパスを表すことです。pipとpip3はどちらもpython3によって実行されるためpip -V
、pip3 -V
#!/Applications/Xcode.app/Contents/Developer/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
vim /usr/local/bin/pip
インタプリタをPython2にポイントするために使用します
#!/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
三、効果
~ » pip -V littlechieh6@bogon
pip 20.2b1 from /Library/Python/2.7/site-packages/pip-20.2b1-py2.7.egg/pip (python 2.7)
-------------------------------------------------------------
~ » pip3 -V littlechieh6@bogon
pip 20.3.3 from /Library/Python/3.8/site-packages/pip (python 3.8)
リファレンスチュートリアル:
- https://blog.csdn.net/u014259820/article/details/100580970