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

最近有小伙伴遇到了明明安装了 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.mzph.cn/news/36462.shtml

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

相关文章

Spring Cloud 面试突击2

Spring Cloud 面试突击2 高并发:是一种系统运行过程中遇到的短时间大量的请求操作 响应时间: 吞吐量: QPS:数据库为维度 TPS 并发用户数 并发的维度:很多的 并发是不是达到的当前系统的瓶颈 缓存 &#xff08…

计算机网络—IP

这里写目录标题 IP的基本认识网络层与数据链路层有什么关系IP地址基础知识IP 地址的分类什么是A、B、C类地址广播地址用来做什么什么是D、E类广播多播地址用于什么IP分类的优点IP分类的缺点 无分类地址CIDR如何划分网络号和主机号怎么进性子网划分 公有 IP 地址与私有 IP 地址公…

指针---进阶篇(二)

指针---进阶篇(二) 前言一、函数指针1.抛砖引玉2.如何判断函数指针?(方法总结) 二、函数指针数组1.什么是函数指针数组?2.讲解函数指针数组3.模拟计算器:讲解函数指针数组 三、指向函数指针数组…

Maven基础之仓库、命令、插件机制

文章目录 Maven 仓库中央仓库和本地仓库中央仓库本地仓库 Maven 命令generate 命令compile 命令clean 命令test 命令package 命令install 命令 Maven 插件机制官方插件:Compile 插件Tomcat 7 插件 Maven 仓库 中央仓库和本地仓库 [✎] 简单一点说 中央仓库是一个网…

Redis复制

在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate) 另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如下图所…

PHP codeigniter4 搭配Nginx

> 主要是为了用Nginx运行PHP环境 1. Nginx 官方文档的配置 default.conf This configuration enables URLs without “index.php” in them and using CodeIgniter’s “404 - File Not Found” for URLs ending with “.php”. server {listen 80;listen [::]:80;se…

springboot 基础

巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 SpringBoot JavaEE 简介 JavaEE的局限性: 1、过于复杂,JavaEE正对的是复杂的分布式企业应用,然而现实…

爬虫如何应对网站的反爬机制?如何查找user-agent对应的值

import requestsurl https://movie.douban.com/top250 response requests.get(url) # 查看结果 print(response)在requests使用一文中我们有讲到,当状态码不是200时表示爬虫不可用,也就是说我们获取不到网页源代码。但是我们还是可以挣扎一下&#xff…

一文秒懂HTTP协议到底是什么?原理?

目录 1.什么是http协议? 2.http协议的版本? 3.http文本框架 4.http请求报文 5.http报文格式 6.http响应报文 7.HTTP的状态码 8.HTTP首部介绍 9.什么是URL和URI? 10.CGI是什么? 1.什么是http协议? http&#…

测试架构师如何落地性能测试方案(一)

背景描述: 最近刚接手一个新项目,在最开始的时候要求对这个项目做性能测试,产品经理也给不出性能需求,只因为这个项目是电商项目,可能会有高并发,秒杀的场景,所以产品经理要求我们对这个项目必…

STM32基于CubeIDE和HAL库 基础入门学习笔记:物联网项目开发流程和思路

文章目录: 第一部分:项目开始前的计划与准备 1.项目策划和开发规范 1.1 项目要求文档 1.2 技术实现文档 1.3 开发规范 2.创建项目工程与日志 第二部分:调通硬件电路与驱动程序 第三部分:编写最基础的应用程序 第四部分&…

opencv带GStreamer之Windows编译

目录 1、下载GStreamer和安装2. GSTReamer CMake配置3. 验证是否配置成功 1、下载GStreamer和安装 下载地址如下: gstreamer-1.0-msvc-x86_64-1.18.2.msi gstreamer-1.0-devel-msvc-x86_64-1.18.2.msi 安装目录无要求,主要是安装完设置环境变量 xxx\1…

【css】渐变

渐变是设置一种颜色或者多种颜色之间的过度变化。 两种渐变类型: 线性渐变(向下/向上/向左/向右/对角线) 径向渐变(由其中心定义) 1、线性渐变 语法:background-image: linear-gradient(direction, co…

springboot结合element-ui实现增删改查,附前端完整代码

实现功能 前端完整代码 后端接口 登录,注册,查询所有用户,根据用户名模糊查询,添加用户,更新用户,删除用户 前端 注册,登录,退出,用户增删改查,导航栏&#…

Android Sutdio 导入libs文件夹下的jar包没反应

有点离谱,笨笨的脑子才犯的错误 首先发现问题:转移项目的时候 直接复制粘贴libs文件夹下的jar包到新项目,在build.gradle文件下 使用语句并应用也没反应(jar包没有出现箭头且代码报错,找不到) implementa…

什么样的 PLC 可以算是高端 PLC?

针对问题本身,有的回答里都提到了。可靠性,扫描时间,带离散量点数,带模拟量输出点数,扩展性,这些都可以看作PLC系统级别划分的依据。比如说,有相应安全完整性等级认证的LOGIC SOLVER为核心的PLC…

五个独特且有趣的ChatGPT指令

今天分享5个很实用的指令,这几个指令很多时候对我们输出内容的连贯性、文章风格、创意性等方面有着决定性的作用。 目录 第一个:Max tokens(最大令牌) 第二个:Top_p(控制采样) 第三个:Presence_penalty …

Android Studio System.out.println()中文乱码

第一步: 打开studio64.exe.vmoptions加入-Dfile.encodingUTF-8 第二步: File-Settings-Editor-File Encodings 把所有的编码格式改为UTF-8 尝试跑一下代码,如果还不行,重启IDE 再试试。

UI美工设计岗位的工作职责

UI美工设计岗位的工作职责1 职责: 1、负责软件界面的美术设计、创意工作和制作工作; 2、根据各种相关软件的用户群,提出构思新颖、有高度吸引力的创意设计; 3、对页面进行优化,使用户操作更趋于人性化; 4、维护现有的应用产品; 5、收集和…

NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践

NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践 文本匹配多用于计算两个文本之间的相似度,该示例会基于 ESimCSE 实现一个无监督的文本匹配模型的训练流程。文本匹配多用于计算两段「自然文本」之间的「相似度」。 例如…