1. 错误日志

当我在 Linux 机器(使用 Debian 或 Ubuntu 或衍生发行版)上运行 pip install xyz 时,会出现这样的错误:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install. If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed. If you wish to install a non-Debian packaged Python application,
it may be easiest to use `pipx` install xyz, which will manage a
virtual environment for you. Make sure you have `pipx` installed. See /usr/share/doc/python3.11/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

2. 解决办法

设置当前的venv虚拟环境, .venv是虚拟环境的名字可以任意,这里确保你安装了venv

在 Debian/Ubuntu 系统上安装 python3-venv

sudo apt update
sudo apt install python3-venv

在 macOS 上使用 Homebrew 安装的 Python 3.x 默认情况下会包括 venv 模块,因此你无需额外安装 venv

创建虚拟环境:

python3 -m venv .venv

设置完成之后该目录会生成 .venv目录、之后该目录下执行python相关的命令则为:

.venv/bin/pip3 install ****
.venv/bin/python3 ***.py

如果想省略前面的路径,也可以先激活虚拟环境

source .venv/bin/activate

激活虚拟环境后,命令行提示符通常会改变,显示虚拟环境的名称。这时候,python 和 pip 会指向虚拟环境中的 Python 解释器和包管理器。之后执行命令就不用带上具体的目录了:

pip3 install ****
python3 ***.py

退出虚拟环境

deactivate

通过这种方式,你可以确保在隔离的环境中管理你的Python包和依赖,不会影响系统的全局设置。


3. 更换pip源

如果pip3下载比较慢,可以将 pip 的默认源更换为国内的镜像源来加速包的下载和安装。以下是更换 pip 源的方法:

3.1 常用的国内镜像源

镜像源 镜像源地址
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 https://mirrors.aliyun.com/pypi/simple
豆瓣 https://pypi.douban.com/simple
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple
华中理工大学 https://pypi.hustunique.com

3.2 临时更换源

如果你只想临时更换源来安装一个包,可以在 pip 命令中使用 -i 参数指定源。例如:

pip3 install somepackage -i https://pypi.tuna.tsinghua.edu.cn/simple

3.3 永久更换源

你可以通过修改 pip 的配置文件来永久更换源。配置文件的路径因操作系统而异:

  • Linux 和 macOS: ~/.pip/pip.conf

  • Windows: %APPDATA%\pip\pip.ini

如果配置文件不存在,你需要自己创建它们。

  • 修改配置文件
  1. Linux 和 macOS:

    创建或编辑 ~/.pip/pip.conf 文件:

mkdir -p ~/.pip
nano ~/.pip/pip.conf

增加如下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  1. Windows:

创建或编辑 %APPDATA%\pip\pip.ini 文件:

打开命令提示符并输入:

notepad %APPDATA%\pip\pip.ini

然后添加以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

3.4 验证配置

你可以通过以下命令验证 pip 是否使用了新的源:

pip3 config list

这将显示当前 pip 的配置,确认 index-url 是否已经更改为你指定的镜像源。

global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'

通过以上步骤,你可以更换 pip 的源以加速包的下载和安装。

4. pipx

看到相关链接提到了pipx,顺带介绍下pipx

If what you are trying to install is an application then a strong recommendation is to use a tool like pipx. pipx is available for installation as system package on Debian systems and Debian-based systems such as Ubuntu:

如果要安装的是应用程序,那么强烈建议使用 pipx 这样的工具。在 Debian 系统和基于 Debian 的系统(如 Ubuntu)上,pipx 可作为系统包进行安装:

4.1 简介

pipx 是一个用于安装和管理 Python 应用程序的工具。与 pip 不同的是,pipx 专注于全局安装可执行的 Python 应用程序,并确保它们在隔离的虚拟环境中运行。这种方式有助于避免不同应用程序之间的依赖冲突。

pipx 的主要特点

  1. 隔离环境:每个应用程序在自己的虚拟环境中运行,确保相互独立,避免依赖冲突。

  2. 简化命令:可以轻松地安装、运行和管理 Python 应用程序,而无需手动创建和激活虚拟环境。

  3. 全局可用:安装的应用程序全局可用,就像普通的命令行工具一样。

4.2 安装

可以使用 pip 来安装 pipx

pip install `pipx`
`pipx` ensurepath

``pipx ensurepathpipx 提供的一个命令,用于确保 pipx 安装的应用程序可以在你的终端中全局访问。具体来说,这个命令会检查并确保 pipx 安装的应用程序所在的路径已经添加到你的系统的 PATH 环境变量中。

当你使用 pipx 安装一个 Python 应用程序时,pipx 会将该应用程序安装到一个隔离的虚拟环境中,并创建一个指向该虚拟环境中可执行文件的快捷方式。为了能够在终端中全局访问这些可执行文件,需要将这些快捷方式所在的路径添加到 PATH 环境变量中。

pipx ensurepath 会自动完成以下工作:

1.检查路径:检查 pipx 的可执行文件路径是否已经在 PATH 环境变量中。

2.添加路径:如果路径不在 PATH 中,pipx ensurepath 会将该路径添加到你的 shell 配置文件中(例如 .bashrc、.bash_profile、.zshrc 等)。

3.通知用户:如果进行了修改,它会通知你需要重启终端或重新加载配置文件,以使更改生效。

4.3 使用

4.3.1 安装应用程序

使用 pipx 安装应用程序:

pipx install package_name

例如,安装 httpie

pipx install httpie
4.3.2 运行应用程序

安装后,你可以直接运行该应用程序:

http
4.3.3 卸载应用程序

如果你不再需要某个应用程序,可以使用以下命令卸载:

pipx uninstall package_name
4.3.4 查看已安装的应用程序

要查看使用 pipx 安装的所有应用程序:

pipx list
4.3.5 特定版本的应用程序

你可以通过指定版本来安装应用程序:

pipx install package_name==version
4.3.6 使用示例

以下是一些常见的 pipx 使用示例:

  1. 安装 black(一个 Python 代码格式化工具):

    pipx install black
  2. 运行 black

    black my_script.py
  3. 卸载 black

    pipx uninstall black
  4. 查看所有安装的应用程序

    pipx list

5. 相关链接

解决pip命令报错及Python环境配置指南:从安装到优化的更多相关文章

  1. pip命令报错“no perl script found in input”

    windows10,命令行下使用pip命令时报错,python运行成功,且环境变量已经设置,可能是更新了新版本pip所导致 解决方案: 一.使用pip.exe+命令可解决这个问题 二.进行python ...

  2. Python3 pip命令报错:Fatal error in launcher: Unable to create process using '"'

    Python3 pip命令报错:Fatal error in launcher: Unable to create process using '"' 一.问题 环境:win7 同时安装py ...

  3. win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)

    这篇文章主要介绍了win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装.优化.安全等),需要的朋友可以参考下 win2008 r2 安装 http://www ...

  4. 安装Python,输入pip命令报错———pip Fatal error in launcher: Unable to create process using

    今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python27\;D:\Python27\Scripts; 不管是在哪个目录,Python可以执行了 ...

  5. Ubuntu Server 上安装pip后pip命令报错的解决办法

    Installation Do I need to install pip? pip is already installed if you are using Python 2 >=2.7.9 ...

  6. 输入pip命令报错:from pip import main ImportError: cannot import name 'main'

    报错信息: qly@qlyComputer:~$ pip Traceback (most recent call last): File "/usr/bin/pip", line ...

  7. 通过pip命令导出和导入Python环境安装包

    我们在开发完代码后,一般需要将依赖包导出,然后在移植到其他系统使去安装,保证环境正常   导出Python环境安装包[root@bogon ~]# pip freeze > packages.t ...

  8. 解决find命令报错: paths must precede expression(转)

    原文地址:https://www.cnblogs.com/peter1994/p/7297656.html 在一天早上,想在服务器 /tmp 目录清除一些pdf文件,大概一万多个文件,在执行命令的时候 ...

  9. Linux pip命令报错 -bash: pip: command not found

    下载 $ wget https://bootstrap.pypa.io/get-pip.py 安装 $ python get-pip.py 查看版本 $ pip -V 查看安装路径: find / - ...

  10. 解决find命令报错: paths must precede expression

    eg: find . -name *.c -or -name *.cpp 需要将模糊搜索词用引号括起来: find . -name "*.c" -or -name "*. ...

随机推荐

  1. 云原生爱好者周刊:为 DevOps 流水线准备的 macOS 虚拟化工具

    开源项目推荐 Tart Tart 是一个虚拟化工具集,用于构建.运行和管理 Apple Silicon 芯片 macOS 上的虚拟机,主要目的是为 CI 流水线的特殊任务提供运行环境.主要亮点: 使用 ...

  2. 快速部署sqlserver AlwaysOn集群

    点击查看代码 丐版sqlserver集群 之前试过docker的,k8s的,然后发现,还是最朴素的是最简单的,希望有大佬能够汉化,他妈的,那些英文看得人要发癫啊. 前置准备,参照丐版pxc集群: ht ...

  3. 在centos7系统上安装docker环境

    基于 CentOS 7 安装 官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/ 确定你是CentOS7及以上版本 [ro ...

  4. DRF-Serializers序列化器组件源码分析及改编

    1. 源码分析 注意:以下代码片段为方便理解已进行简化,只保留了与序列化功能相关的代码 序列化的源码中涉及到了元类的概念,我在这里简单说明一下:元类(metaclass)是一个高级概念,用于定义类的创 ...

  5. C# 将PDF文档转换为Markdown文档

    将PDF文件转换为Markdown格式是一个非常实用的需求,尤其是在需要将内容从固定布局的PDF文件中提取出来,并转换为更易于编辑和处理的文本格式时.本文将介绍如何通过C#代码将PDF文档转换Mark ...

  6. Tortoise SVN 安装汉化教程(乌龟SVN)

    1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/cb6f2eee3f90 2. 安装Tortoise SVN 无脑next到完成 最后到桌面右键 你 ...

  7. 2024年全国大学生信息安全竞赛安徽省赛-WP

    2024年全国大学生信息安全竞赛安徽省赛-WP 没有re,不会...... 0X01 初赛(CTF) MISC 图像损坏 损坏的GIF文件,补上缺失的文件头 ​​ 用puzz拆分GIF,得到多个图片 ...

  8. Johnson全源最短路:负权化正权,最后减去势能差

    Johnson全源最短路:负权化正权,最后减去势能差 (1)建虚点0,add(0,i,0),跑st=0的单源最短路hi (2)e[i].w+=h[u]-h[v] ​ Q:为何这样不会得到错误答案? ​ ...

  9. Linux再学!

    第三篇Linux入门 一.linux基本指令 1.Linux根目录为/,后续路径用/分隔,如/home/admin 2.Linux命令 基础格式: command: 命令本身 -options:[可选 ...

  10. 如何在原生鸿蒙中进行RN热加载

    一.背景 在上一篇博客中,我分享了将RN的bundle包在原生鸿蒙开发中进行使用.但是如果我们在实际的开发过程中,每次修改完代码都需要打包,然后重新运行原生项目的话效率就有点太低了. 原生鸿蒙支持RN ...