解决pip命令报错及Python环境配置指南:从安装到优化
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 常用的国内镜像源
3.2 临时更换源
如果你只想临时更换源来安装一个包,可以在 pip 命令中使用 -i 参数指定源。例如:
pip3 install somepackage -i https://pypi.tuna.tsinghua.edu.cn/simple
3.3 永久更换源
你可以通过修改 pip 的配置文件来永久更换源。配置文件的路径因操作系统而异:
Linux 和 macOS:
~/.pip/pip.confWindows:
%APPDATA%\pip\pip.ini
如果配置文件不存在,你需要自己创建它们。
- 修改配置文件
Linux 和 macOS:
创建或编辑
~/.pip/pip.conf文件:
mkdir -p ~/.pip
nano ~/.pip/pip.conf
增加如下内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
- 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.pipxis 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 的主要特点
隔离环境:每个应用程序在自己的虚拟环境中运行,确保相互独立,避免依赖冲突。
简化命令:可以轻松地安装、运行和管理 Python 应用程序,而无需手动创建和激活虚拟环境。
全局可用:安装的应用程序全局可用,就像普通的命令行工具一样。
4.2 安装
可以使用 pip 来安装 pipx:
pip install `pipx`
`pipx` ensurepath
``pipx
ensurepath是pipx提供的一个命令,用于确保pipx安装的应用程序可以在你的终端中全局访问。具体来说,这个命令会检查并确保pipx安装的应用程序所在的路径已经添加到你的系统的 PATH 环境变量中。当你使用
pipx安装一个 Python 应用程序时,pipx会将该应用程序安装到一个隔离的虚拟环境中,并创建一个指向该虚拟环境中可执行文件的快捷方式。为了能够在终端中全局访问这些可执行文件,需要将这些快捷方式所在的路径添加到 PATH 环境变量中。
pipxensurepath 会自动完成以下工作:1.检查路径:检查
pipx的可执行文件路径是否已经在 PATH 环境变量中。2.添加路径:如果路径不在 PATH 中,
pipxensurepath 会将该路径添加到你的 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 使用示例:
安装
black(一个 Python 代码格式化工具):pipx install black
运行
black:black my_script.py
卸载
black:pipx uninstall black
查看所有安装的应用程序:
pipx list
5. 相关链接
解决pip命令报错及Python环境配置指南:从安装到优化的更多相关文章
- pip命令报错“no perl script found in input”
windows10,命令行下使用pip命令时报错,python运行成功,且环境变量已经设置,可能是更新了新版本pip所导致 解决方案: 一.使用pip.exe+命令可解决这个问题 二.进行python ...
- Python3 pip命令报错:Fatal error in launcher: Unable to create process using '"'
Python3 pip命令报错:Fatal error in launcher: Unable to create process using '"' 一.问题 环境:win7 同时安装py ...
- win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)
这篇文章主要介绍了win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装.优化.安全等),需要的朋友可以参考下 win2008 r2 安装 http://www ...
- 安装Python,输入pip命令报错———pip Fatal error in launcher: Unable to create process using
今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python27\;D:\Python27\Scripts; 不管是在哪个目录,Python可以执行了 ...
- Ubuntu Server 上安装pip后pip命令报错的解决办法
Installation Do I need to install pip? pip is already installed if you are using Python 2 >=2.7.9 ...
- 输入pip命令报错:from pip import main ImportError: cannot import name 'main'
报错信息: qly@qlyComputer:~$ pip Traceback (most recent call last): File "/usr/bin/pip", line ...
- 通过pip命令导出和导入Python环境安装包
我们在开发完代码后,一般需要将依赖包导出,然后在移植到其他系统使去安装,保证环境正常 导出Python环境安装包[root@bogon ~]# pip freeze > packages.t ...
- 解决find命令报错: paths must precede expression(转)
原文地址:https://www.cnblogs.com/peter1994/p/7297656.html 在一天早上,想在服务器 /tmp 目录清除一些pdf文件,大概一万多个文件,在执行命令的时候 ...
- Linux pip命令报错 -bash: pip: command not found
下载 $ wget https://bootstrap.pypa.io/get-pip.py 安装 $ python get-pip.py 查看版本 $ pip -V 查看安装路径: find / - ...
- 解决find命令报错: paths must precede expression
eg: find . -name *.c -or -name *.cpp 需要将模糊搜索词用引号括起来: find . -name "*.c" -or -name "*. ...
随机推荐
- Android复习(二)应用资源——>字体
字体资源定义了可在应用中使用的自定义字体.字体可以是单独的字体文件或字体文件的集合,称为字体系列,并在 XML 中定义. 另请参阅如何定义 XML 中的字体,或改用可下载字体. 捆绑式字体 您可以将字 ...
- prometheus+grafana配置流程
prometheus+grafana配置流程 首先,安装对应的exporter 查看prometheus支持的所有exporters https://prometheus.io/docs/instru ...
- KubeSphere 在直播应用中的实践
本文是上海站 Meetup 讲师唐明根据其分享内容整理的文章. 引言 目前媒体的主流传播渠道已从传统的报纸.广播.电视转向了互联网,各种视频及社交 App 成为了人们获取资讯的首选途径.苏州市广播电视 ...
- 云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16
开源项目推荐 Reloader Reloader 是一个 Kubernetes 控制器,用于监控 ConfigMap 和 Secrets 中的变化,并对 Pod 及其相关部署.StatefulSet. ...
- Java序列化之ProtoStuff
知识点: ProtoStuff 是将结构数据转为字节流进行序列化的,优点是占用空间小,速度快,缺点是可读性差. ProtoStuff 是基于 ProtoBuf 发展而来的. 本文不讲那么多背景,直接上 ...
- 【VMware VCF】使用 PowerShell 脚本管理 SDDC Manager 中的软件包。
SDDC Manager 中有两种类型的软件包,分别是"升级/修补包(PATCH)"和"安装包(INSTALL)"."升级/修补包"用于执行 ...
- redis配置文件剖析
解析配置文件 #是否在后台运行:no:不是后台运行 daemonize yes #是否开启保护模式,默认开启.要是配置里没有指定bind和密码.开启该参数后,redis只会本地进行访问,拒绝外部访问. ...
- 题解:CF888G Xor-MST
题解:CF888G Xor-MST 题目大意:给定 \(n\) 个点的点权, 任意两点间边权是点权的异或和.求这张完全图的 MST 的权值. 思路: Boruvka + Trie树 + 按位贪心. 关 ...
- 基于 Github 平台的 .NET 开源项目模板 - 发布与归档 相关
CHANGELOG.md 案例 ## [1.0.1.2] - 2023-03-10 ### myproject2 _ 1.0.1: - 初步版本 简单实现 还未优化 - fix warning ## ...
- 学校官网应该使用哪种SSL证书?
学校官网在选择SSL证书时,应考虑多个因素,包括网站的性质.安全要求.预算以及证书的管理便捷性等.以下是关于学校官网应使用哪种SSL证书的详细分析: 多域名和子域名需求: 如果学校官网有多个子域名或者 ...