Python中pip安装与使用及错误解决方案合集

这篇具有很好参考价值的文章主要介绍了Python中pip安装与使用及错误解决方案合集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文旨在记录 pip 安装与使用,以及安装过程中遇到问题的解决方案。


一、pip 安装与使用

1.pip 升级:
sudo python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.安装python包:
sudo python -m pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple xxx

3.安装python包的 requirements.txt:
sudo python -m pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

4.列出已经安装的python包:
sudo python -m pip list

5.卸载已经安装的python包:
sudo python -m pip uninstall xxx

二、pip安装错误解决方案合集

"ModuleNotFoundError: No module named ‘xxx’"这个报错是个非常常见的报错,几乎每个python程序员都遇到过,导致这个报错的原因也非常多,下面是我曾经遇到过的原因和解决方案

1.module包没安装
2.忘了import
3.没有__init__.py文件
4.package包的版本不对
5.自定义的包名与安装的包名相同,导致import包的时候导错了包
6.没设置PYTHONPATH或者
7.自建的module包所在路径不在PYTHONPATH下
8.不恰当的使用了相对导入

下面是每种情况分别的解决方案:

1.module包没安装

使用场景: pip安装的第三方的包找不到
1. 查找安装包
pip list | grep xxx   #把xxx替换成你的包名即可
2. 安装xxx 
pip install xxx -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

2.import缺失

使用场景: pip安装的第三方的包找不到、自建的module包找不到
module安装了但是没有import,这个原因也经常碰到,比如使用了datetime对象, 但是没有导入datetime包。解决方案同样非常简单,import 相应的包即可。比如下面的案例:
import os
import sys
import time
import datetime

这种情况最容易出现在从别处copy了一段了代码,但是没有把所有用到的module导入进来。

3.init.py文件缺失

使用场景: 自建的module包找不到
因为python在解释包的时候会给本文件夹也就是本module下的所有文件建立一个索引放在当前路径下的__init__.py文件中,如果没有module的文件索引,我们即使import了指定的包,解释器还是找不到这个module下的文件的,因而我们一般会在每个文件夹下建一个空的__init__.py文件。如果一个文件夹下没有__init__.py文件,不会被当做一个module。

解决方案: 如果这个包是你自己写的,不妨检查一下待导入的包的根目录是否存在一个__init__.py文件,没有的话建一个空的__init__.py文件即可 (注意:不光要检查待导入的包根目录是否存在__init__.py文件,还需要检查当前程序所在文件夹是否存在这个文件)。如果这个包是pip install来的,那基本上可以忽略这种可能了,继续尝试下面的原因吧。

对于缺少__init__.py文件这种情况,还有一种报错形式是:ImportError: attempted relative import with no known parent package

4.安装的第三方module包的版本不对

使用场景: pip安装的第三方的包找不到
当看到这里,说明你已经检查并确定了module已经被安装了,import语句也有,init.py文件同样满足。这个时候或许可以怀疑一下是否是第三方包的版本与当前所用python版本不兼容。

解决方案是需要先卸载原来pip 安装的包,然后安装一个指定版本的包。比如python3不兼容 2.0版本及以上的DBUitls包,需要安装1.x的版本才行。

安装特定版本:
pip uninstall DBUtils
pip install DBUtils==1.3

5.import导错包

使用场景: pip安装的第三方的包找不到、自建的module包找不到
这种情况不经常发生,但是一旦发生,非常难找到原因。我曾经就自己在当前项目下创建了名为kafka的module文件夹(包含__init__.py文件的文件夹被称为module文件夹),而我又使用pip命令安装了一个kafka包,我在程序中使用import kafka命令导包的时候其实我是想导入pip下来的第三方包的,但是因为python包管理机制和包查找优先级,会优先从当前路径下找指定的包,如果当前文件夹下存在指定的包,则不会去PYATHONPATH或者其他路径下找包。

解决方式是给自己的文件夹换个名字,使得与第三方包名不冲突。

6.未设置PYTHONPATH环境变量

使用场景: pip安装的第三方的包找不到
将这条命令即可将刚才的包路径添加到环境变量中:
export PYTHONPATH= ./venv/lib/python3.9/site-packages:$PYTHONPATH

7.自建的module包所在路径不在PYTHONPATH下

使用场景: 自建的包找不到
在IDE中执行python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为加到PYTHONPATH下,所以直接执行是没有问题的。但是在cmd或者terminal控制台中直接使用python相关命令来执行程序,不会自动将当前项目加入到PYTHONPATH环境变量下,如果涉及到import其他文件夹下的变量就会报类似ImportError: No module named xxx这样的错误。

解决方法是使用sys.append()命令把报警包的所在文件夹路径加入到PYTHONPATH。

import sys
import logging
import os

# 把当前文件所在文件夹的父文件夹路径加入到PYTHONPATH
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from conf.online_conf import *

8.不恰当的使用了相对导入

使用场景: 相对导入与绝对导入混淆
1.绝对导入:
绝对导入的格式为 import A.B 或 from A import B
import fibo    # 隐式相对导入
from fibo import fibo1, fibo2    # 绝对路径导入
import fibo as fib    # 重命名
from fibo import fib as fibonacci

2.相对导入:
相对导入格式为 from .A import B 或 from ..X import Y, . 代表当前包, .. 代表上层包, ... 代表上上层包,依次类推。
from . import echo    # 表示从当前文件所在package导入echo这个module
from .. import formats    # 表示从当前文件所在package的上层package导入formats这个子package或者moudle
from ..filters import equalizer # 表示从当前文件所在package的上层package导入的filters这个子package或者子module中导入equalizer

相对导入基于当前模块的名称。由于主模块的名称始终为"__main__",因此用作 Python 应用程序主模块的模块必须始终使用绝对导入。主模块所在文件夹不会被视作package,因此除了主模块外,与主模块处在同个文件夹的模块(也就是同级的模块)也必须使用绝对导入。

三、pip更换镜像

在学习或者工作中,我们经常在搭建环境时需要下载安装一些库文件,但是pip默认下载使用的源是国外的,因此下载速度会很慢,所以在下载的时候我们可以将源地址换为国内的源,会大大提升下载速度。

1.常用的国内镜像源

(1)阿里云 http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣http://pypi.douban.com/simple/
(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
(5)华中科技大学http://pypi.hustunique.com/文章来源地址https://www.toymoban.com/news/detail-595183.html

2.常用的国内源

在使用pip的时候,加上参数-i和镜像地址(如
https://pypi.tuna.tsinghua.edu.cn/simple/),
例如:
python -m pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple/ requests
这样就会从清华镜像安装文件

如果加国内镜像后无法进行pip安装,则取消镜像试试。

到了这里,关于Python中pip安装与使用及错误解决方案合集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pip install flagai时出现Collecting PyYAML==5.4.1 (from flagai)等错误信息的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年01月23日
    浏览(46)
  • Python中使用execjs执行JavaScript代码:方法与常见错误解决方案

     简介和背景:          execjs 库的作用和重要性是在Python中执行JavaScript代码。它允许开发者在Python环境下调用JavaScript逻辑和功能,从而实现Python与JavaScript之间的交互。通过 execjs ,Python开发者可以利用JavaScript的强大功能和现有库,拓展Python应用的能力,实现跨语言的灵

    2024年02月10日
    浏览(34)
  • pip install pygame安装报错解决方案

    针对pip install pygame安装报错的两种不同的解决方法: 一: 若python中 已经安装好了pip ,但pip install pygame却报错的话,可以尝试以下步骤: (1)开始,输入cmd (2)pip install wheel (3)pip install pygame 二: 另一种出现错误的原因是版本问题,此时下载pygame会出现以下警告:  针对

    2024年02月11日
    浏览(45)
  • windows环境 pip安装mysqlclient失败问题记录及解决方案

    直接下载安装mysqlclient whl文件进行安装 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 注意:cp37即表示python3.7的版本,其他版本号同理,win32表示windows 32位的, win_amd64表示windows 64位 我这里是python3.7的版本,系统是64位所以选择 mysqlclient‑1.4.6‑cp37‑cp37m‑win_amd64.whl 结果如下:

    2024年02月11日
    浏览(42)
  • 服务器安装 anaconda & conda: command not found [解决方案] & bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案

    由于连接的服务器,无法直接在anaconda官网上下载安装文件,所以使用如下方法: 之后一直按 enter ,直到出现提示要输入 yes or no ,输入 yes 显示以下信息即为安装成功 在终端输入conda info --envs查看anaconda是否安装成功,发现报错:conda: command not found 原因在于: ~/.bashrc文件没

    2024年02月06日
    浏览(94)
  • K8S1.23.6版本详细安装教程以及错误解决方案(包括前置环境,使用部署工具kubeadm来引导集群)

    一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令。 每台机器 2 GB 或更多的 RAM(如果少于这个数字将会影响你应用的运行内存)。 CPU 2 核心及以上。 集群中的所有机器的网络彼此均能相互连接(公网和

    2024年03月14日
    浏览(43)
  • 解决“无法启动此程序,因为计算机中丢失VCRUNTIME140.dll,尝试重新安装此程序以解决此问题”方案合集

    今天装配mysql的时候,系统出现了报错。 .dll文件是动态链接库文件,是一种可执行文件,很多时候系统会通过调用一些vc的dll文件来运行一些程序。 查阅资料以后发现有几个解决方案,笔者通过第二种解决方案解决该问题。 方案1 : 通过下载 VCRUNTIME140_1.dll文件后直接复制到

    2024年01月16日
    浏览(64)
  • 常见的 Python 错误及其解决方案

    此文整理了一些常见的 Python 错误及其解决方案。 说明:无效的语法是最常见的错误之一,通常是由于编写代码时违反了 Python 的语法规则。可能的原因: 忘记在 if 、 while 、 for 等语句后写冒号,或者将冒号写成分号或其他符号。解决方案:更改为英文半角冒号。 代码中可

    2024年02月11日
    浏览(42)
  • 【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案

    大家好 我是寸铁👊 总结了一篇【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案✨ 喜欢的小伙伴可以点点关注 💝 今天寸铁在使用 pip 安装包时,报错如下: 具体如下: 下面跟着寸铁一步步把问题解决吧!!! 出现这种问题,一般来说是

    2024年04月10日
    浏览(77)
  • pip install安装CPM-Bee出现ModuleNotFoundError: No module named ‘torch‘的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月10日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包