我们常说这个pycharm里有陷阱,第三方库导入失败,看这里!

news2024/12/23 13:31:10

最近有小伙伴遇到了明明安装了 python 第三方库,但是在 pycharm 当中却导入不成功的问题。

一直以来,也有不少初学 python 的小伙伴,一不小心就跳进了虚拟环境和系统环境的【陷阱】中。

本文就基于此问题,来说说在 pycharm 当中如何使用系统环境、虚拟环境。

pycharm 当中,每一个项目在运行时,都需要指定一个 python 环境,比如 python3.7,python3.8 等。

1、你的项目是否用的虚拟环境?

在 pycharm 创建 project 时,需要选择 python 环境,默认是创建一个虚拟环境。

很多小伙伴,这一步没有去处理。自然而然的就会创建一个虚拟环境而不自知。

如下图所示:

点开之后,默认选中的虚拟环境。

虚拟环境创建成功之后,在项目下面会有一个 venv 目录。

如果你的项目下面有这个目录,那么说明你用的就是虚拟环境。

在 pycharm 当中,执行这个项目的代码时,会自动使用虚拟环境中的第三方库。

如果虚拟环境中没有,则会导入失败。

所以本文一开头遇到的问题,其实就是这个原因。

第三方库安装在本地 python 环境中,而运行代码时,使用的是虚拟环境中的。

对于 python 初学者,不要用虚拟环境,不要用虚拟环境,不要用虚拟环境!

先用本地系统环境好好学会 python,以后再考虑使用虚拟环境。

2、项目环境切换 - 如何从虚拟环境切换到本地环境

那么,已经不小心掉到了这个【陷阱】里的同学,想将项目从虚拟环境,切换到本地 python 环境,怎么办呢?

在【File -> Settings -> project:你的项目名称 -> python interpreter】中,可以指定当前项目的 python 环境。

点击 Show All 会显示所有的环境,如下图。如果环境路径中带有【venv】表示为虚拟环境

我们要选择本地的 python 环境,而不是虚拟环境。

环境切换成功之后,【External Libraries】下会显示本地 python 环境路径。

在 pycharm 当中运行时,就会使用本地环境去执行代码了。

在编写 python 代码时,导包也是从这个 python 环境下面去导。

3、pycharm 中,python 虚拟环境中第三方库管理

一般在开发 python 项目时,会使用虚拟环境。

虚拟环境的目的是,项目与项目之间的 python 环境隔离,项目所使用的 python 第三方库隔离。

如果你的项目当前正在虚拟环境当中,如何进入虚拟环境安装第三方库呢?

虚拟环境中安装和卸载第三方库的 2 种方式。

3.1)在 pycharm 的终端安装和卸载。

第一步:将 pycharm 的 Terminal 终端从 powershell 更换成 cmd.exe。(windows 环境)

这种情况下,我们需要手动执行命令,进入虚拟环境当中。

如果将 windows powershell 换成 cmd.exe,那么打开 Terminal 之后,就会自动进入虚拟环境当中。

这样就不用每次去切换了。

切换步骤:【File - Settings - Tools - Terminal - Shell path - 选择有 cmd.exe 的】

关掉之前打开的 Terminal,重新打开一个。就会自动切换到虚拟环境当中。

第二步:使用 pip 命令进行安装和卸载即可。

3.2)在项目的解释器配置界面安装和卸载第三方库

第一步:进入项目解释器配置界面。

操作步骤:【File - Settings - Project:你的项目名称 - Python Interpreter】

第二步:点 + 进入安装第三方库界面。

添加图片注释,不超过 140 字(可选)

要卸载已安装的包

关于第三方库安装时很慢或者读取超时问题处理:

可以在安装第三方库时使用以下国内源:

阿里云 http://mirrors.aliyun.com/pypi/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

pip 安装命令为:

pip install XXXX -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/877314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【leetcode】【图解】617. 合并二叉树

题目 难度:简单 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xf…

基于DBN的伪测量配电网状态估计,DBN的详细原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的伪测量配电网状态估计 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN算法伪测量配电网…

leetcode 1171.从链表中删去总和值为零的连续节点

⭐️ 题目描述 🌟 leetcode链接:从链表中删去总和值为零的连续节点 思路: 在链表的 head 前新增加一个哨兵卫的头结点,方便计算前缀和。遍历链表,依次把每个节点的 val 相加到 sum 中去,再判断 sum 0 依…

网络编程(8.14)TCP并发服务器模型

作业: 1. 多线程中的newfd,能否修改成全局,不行,为什么? 2. 多线程中分支线程的newfd能否不另存,直接用指针间接访问主线程中的newfd,不行,为什么? 多线程并发服务器模型原代码&…

认识Transformer:入门知识

视频链接: https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …

排查docker无法启动问题

查看Linux系统操作日志(最后200行就可以排查): tail -200f /var/log/messages

什么是证券股票交易接口?(股票交易挂单接口)源码开发步骤

证券股票交易接口是一种可以实现证券交易功能的软件接口,它提供了一组用于交易的函数或方法,可以通过调用这些接口来执行买卖股票、查询账户信息、获取市场行情等操作。证券股票交易接口可以连接到证券交易所或证券公司的交易系统,允许用户通…

SpringBoot基于Zookeeper实现分布式锁

文章目录 问题背景前言实现搭建Zookeeper容器引入依赖ZK客户端的配置类ZK客户端的工厂类注入bean构建测试类 问题背景 研究分布式锁,基于ZK实现,需要整合到SpringBoot使用 前言 参考自SpringBoot集成Curator实现Zookeeper基本操作,Zookeeper入…

d3dx9_37.dll如何修复,d3dx9_37.dll丢失的4种解决方法分享

d3dx9_37.dll是DirectX中的一个动态链接库文件,它包含了一些用于游戏和图形应用程序的函数和资源。当你在运行一个需要使用DirectX的程序时,如果系统中缺少d3dx9_37.dll文件或该文件损坏,就会导致程序无法正常运行。 以下是解决d3dx9_37.dll问…

数字孪生如何实现物理世界和数字世界之间的交互?

在当今数字化时代,技术的飞速发展正在引领着各行各业的变革与创新。其中,数字孪生作为一项令人振奋的前沿技术,正在以惊人的方式实现着物理世界与数字世界的无缝交互。它不仅为企业带来了全新的商机,也为科学研究、生产制造等领域…

算法通关村第七关——递归和迭代实现二叉树前中后序遍历

1.递归 1.1 熟悉递归 所有的递归有两个基本特征: 执行时范围不断缩小,这样才能触底反弹。终止判断在调用递归的前面。 写递归的步骤: 从小到大递推。分情况讨论,明确结束条件。组合出完整方法。想验证就从大到小画图推演。 …

Android Ble蓝牙App(四)UI优化和描述符

Ble蓝牙App(四)UI优化和描述符 前言正文一、UI优化① 主页面提示优化② UUID显示优化③ 设备信息优化 二、描述① 概念② 描述适配器③ 显示描述符 三、源码 前言 上一篇中了解了特性和属性,同时显示设备蓝牙服务下的特性和属性,本…

约数个数(质因子分解)

思路: (1)由数论基本定理,任何一个正整数x都能写作,其中p1,p2..pk为x的质因子。 (2)由此可以推断,要求一个数约数的个数,注意到约数就是p1,p2...pk的一种组合&#xff…

可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用

一、💛 锁策略——接上一篇 6.分为可重入锁,不可重入锁 如果一个线程,针对一把锁,连续加锁两次,会出现死锁,就是不可重入锁,不会出现死锁,就是可重入锁。 如果一个线程,针…

yum包管理器

文章目录 是什么?联系本地源⽹络源 为什么要用yum?联系 是什么? 我们将yum称为包管理器,主要用来解决:下载、依赖关系、安装、卸载四种问题。 在Linux系统中有一个yum软件服务器,上面有Linux需要的各种软件…

QT:自定义控件(Connect使用,子控件连接)

自定义控件封装: 1.添加新文件(设计师界面类),创建子页面 ,放自己想要的控件 2.在主页面中使用子控件 :新建一个widget-![在这里插入图片描述](https://img-blog.csdnimg.cn/95ed8015343e4c56a3914853950eff4c.png#pi…

中国艺术孙溟㠭篆刻作品《得大自在》

关汉卿《四块玉闲适》:“适意行,安心坐。渴时饮,饥时餐,醉时歌。困来时就向莎茵卧。日月长,天地阔,闲快活。” 整理/释门

uniapp+uview封装小程序请求

提要: uniapp项目引入uview库 此步骤不再阐述 1.创建环境文件 env.js: let BASE_URL;if (process.env.NODE_ENV development) {// 开发环境BASE_URL 请求地址; } else {// 生产环境BASE_URL 请求地址; }export default BASE_URL; 2.创建请求文件 该…

2023牛客暑期多校训练营9-Non-Puzzle: Segment Pair

2023牛客暑期多校训练营9-Non-Puzzle: Segment Pair https://ac.nowcoder.com/acm/contest/57363/I 文章目录 2023牛客暑期多校训练营9-Non-Puzzle: Segment Pair题目大意解题思路代码 题目大意 解题思路 对于每一对 [ l i , r i ] [l_i,r_i] [li​,ri​]和 [ l i ′ , r i …

海信聚好看将携新品DBdoctor,亮相中国数据库技术大会(DTCC2023)

海信聚好看将携新品DBdoctor,亮相中国数据库技术大会 8月16日—18日,第14届中国数据库技术大会(DTCC-2023)将在北京国际会议中心隆重召开。作为国内数据库领域规模最大的技术交流盛会,吸引了众多业内知名企业和数百名…