首页 > 解决方案 > 使用 sudo python3 get-pip.py 安装 pip 的见解

问题描述

Last login: Sat Jan 16 16:54:40 on ttys001
ugland@Uglands-Air ~ % curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
...
ugland@Uglands-Air ~ % sudo python3 get-pip.py
Password:
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools/distutils_patch.py:25: UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first.
warnings.warn(
WARNING: The directory '/Users/Ugland/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
    Downloading pip-20.3.3-py2.py3-none-any.whl (1.5 MB)
    |████████████████████████████████| 1.5 MB 6.2 MB/s 
    Collecting wheel
Downloading wheel-0.36.2-py2.py3-none-any.whl (35 kB)
Installing collected packages: pip, wheel
   Attempting uninstall: pip
       Found existing installation: pip 20.2.3
       Uninstalling pip-20.2.3:
           Successfully uninstalled pip-20.2.3
Successfully installed pip-20.3.3 wheel-0.36.2
ugland@Uglands-Air ~ % python3 -m pip --version
pip 20.3.3 from /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip (python 3.9)

上个月刚接触 python,我正在遵循的教科书建议通过以下方式安装 pip:

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

sudo python3 get-pip.py

事后才意识到这是一个错误。我正在阅读在具有提升权限的家庭驱动器中安装 pip 可能会破坏您的软件 - 我想知道,鉴于我的终端说它删除了早期版本的 pip,我可以删除/删除/卸载根位置点数。然后我将如何安全地做到这一点?任何帮助表示赞赏,因为我对所有技术细节感到困惑。认为恢复出厂设置是我现在最好的选择。

标签: pythonpython-3.xpip

解决方案


考虑到你的 python 安装带有 PIP,如果我是你,我会简单地运行pip install --user pip

--user标志使 PIP 将软件包安装到用户特定的目录中。执行此操作时,您可能会看到如下警告:

警告:脚本 pip、pip3.9 和 pip3 安装在不在 PATH 上的“/Users/Ugland/Library/...”中。

考虑将此目录添加到 PATH,或者,如果您希望禁止显示此警告,请使用 --no-warn-script-location。

如果确实看到该警告,则应进行编辑~/.bash_profile以添加以下条目:

export PATH="/Users/Ugland/Library/...:$PATH"

注意:您需要/Users/Ugland/Library/...用 PIP 在警告中显示的任何路径替换 。另外,请注意:要添加的路径和$PATH.

将条目添加到~/.bash_profile文件后,您应该能够运行source ~/.bash_profile以将新安装的库添加到您的路径中。在极少数情况下,您可能需要启动新的终端窗口或选项卡。

如果你没有看到上面提到的警告,那么 PIP 的目录已经是你的一部分$PATH,所以你应该好好去。但是,为了更好地衡量,您可能想要运行hash -r,它告诉 bash 它应该忘记它在该点之前记住的所有完整路径位置。(如果不运行hash -r,bash 有时会解析为旧版本的可执行文件。)

最后,如果您调用which pip,您应该会看到位于主目录中某处的路径。

...我可以删除/删除/卸载 pip 的根位置吗?然后我将如何安全地做到这一点?

至于删除系统级别安装的pip版本的问题,我就不说了。似乎它已经安装并且您正在运行sudo python3 get-pip.py可能已将其更新到较新的版本。如果你真的想要,你可以降级它,但将它留在更新版本应该不会有任何伤害。


推荐阅读