我们常说这个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.rhkb.cn/news/89633.html

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

相关文章

PPT颜色又丑又乱怎么办?

一、设计一套PPT时,可以从这5个方面进行设计 二、PPT颜色 (一)、PPT常用颜色分类 一个ppt需要主色、辅助色、字体色、背景色即可。 (二)、搭建PPT色彩系统 设计ppt时,根据如下几个步骤,依次选…

基于vue3+webpack5+qiankun实现微前端

一 主应用改造(又称基座改造) 1 在主应用中安装qiankun(npm i qiankun -S) 2 在src下新建micro-app.js文件,用于存放所有子应用。 const microApps [// 当匹配到activeRule 的时候,请求获取entry资源,渲染到containe…

threejs点击模型实现模型边缘高亮的选中效果--更改后提高帧率

先来个效果图 之前写的那个稍微有点问题,帧率只有30,参照官方代码修改后,帧率可以达到50了,在不全屏的状态下,帧率60 1.首先需要导入库 // 用于模型边缘高亮 import { EffectComposer } from "three/examples/js…

Leetcode-每日一题【剑指 Offer 25. 合并两个排序的链表】

题目 输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4输出&#xff1a;1->1->2->3->4->4 限制&#xff1a; 0 < 链表长度 < 1000 解题思路 1…

http协议详解

HTTP是什么&#xff1f; HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础&#xff0c;同时&#xff0c;也是一种客户端—服务器&#xff08;client-server&#xff09;协议&#xff0c;也就是说&#xff0c;请求是由接受方——通常是浏览…

[C++ 网络协议] 套接字和地址族、数据序列

目录 1. 套接字 1.1 在Linux平台下构建套接字 1.1.1 用于接听的套接字(服务器端套接字) 1.1.2 用于发送请求的套接字(客户端套接字) 1.2 在Windows平台下构建套接字 1.2.1 Winsock的初始化 1.2.2 用于接听的套接字(服务器端套接字) 1.2.3 用于发送请求的套接字(客户端套…

Web菜鸟教程-Springboot使用MyBatis生成器生成代码

SpringBoot大大简化了Web开发流程。可以这么说&#xff0c;做Web后来开发大部分时间就是在做配置文件修改。Web开发中&#xff0c;终端的运算能力越来越强&#xff0c;大部分场景就是数据库的操作&#xff0c;只有少部分逻辑会放在Web端处理。而这些增删查改基本属于标准的格式…

Nginx反向代理配置+负载均衡集群部署

文章目录 负载均衡反向代理基础环境部署&#xff1a;什么是代理实验环境图流量过程 环境部署准备两台Web服务器安装Nginx准备页面内容添加主机名 代理服务器配置 修改windos hosts文件测试&#xff1a;终端浏览器 负载均衡反向代理基础环境部署&#xff1a; 什么是代理 正向代…

Python爬虫——selenium的安装和基本使用

1.什么是selenium&#xff1f; selenium是一个用于web应用程序测试的工具selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样支持通过各种driver&#xff08;FrifoxDriver&#xff0c;ItenrentExploreDriver&#xff0c;OperaDriver&#xff0c;ChromeDrive…

Android模板设计模式之 - 构建整个应用的BaseActivity

1. 模式介绍 模式的定义 定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模式的使用场景 1.多个子类有公有的方法&#xff0c;并且逻辑基本相同时。 2.重要、复杂的算法&#xff0c;可…

threejs中gltf模型出现的问题(黑色,颜色不协调,太小)和解决方案

模型一片漆黑 如下图 可能原因&#xff0c;没有灯光&#xff0c;加下以下代码&#xff1a; // 4、加入灯光 const lightness new THREE.HemisphereLight(0xffffff, 0x444444); lightness.position.set(0, 20, 0); scene.add(lightness); const shadowLight new THREE.Direct…

实现同时查找多个关键词——KeywordCrafter - 关键词匠心

具体功能&#xff1a;同时查找多个关键词&#xff0c;高亮加粗显示&#xff0c;并关键词显示出现次数。 &#x1f9d0;碎碎念&#xff1a;最近在写文案的时候&#xff0c;总是要避免出现一个敏感词汇&#xff0c;利用 (commandF) or (CtrF) 查找&#xff0c;只能一个一个单词去…

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

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

JS逆向系列之猿人学爬虫第14题-备而后动-勿使有变

文章目录 题目地址参数分析参考jspython 调用往期逆向文章推荐题目地址 https://match.yuanrenxue.cn/match/14题目难度标的是困难,主要难在js混淆部分。 参数分析 初始抓包有无限debugger反调试,可以直接hook 函数构造器过掉无限debugger Function.prototype.__construc…

[FPAG开发]使用Vivado创建第一个程序

1 打开Vivado软件&#xff0c;新建项目 选择一个纯英文路径 选择合适的型号 产品型号ZYNQ-7010xc7z010clg400-1ZYNQ-7020xc7z010clg400-2 如果型号选错&#xff0c;可以单击这里重新选择 2 创建工程源文件 可以看到文件创建成功 双击文件打开&#xff0c;插入代码 modul…

IOC容器

DI&#xff08;依赖注入&#xff09;&#xff1a;DI&#xff08;Dependency Injection&#xff09;是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器&#xff0c;使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入…

【分布式存储】数据存储和检索~B+树

为什么数据存储结构重要 在存储系统中&#xff0c;其实不管数据是什么样的&#xff0c;归根结底其实都还是取决于数据的底层存储结构&#xff0c;而主要常见的就是数据库索引结构&#xff0c;B树、Redis中跳表、以及LSM、搜索引擎中的倒排索引。本质都是如何利用不用的数据结构…

Linux下grep通配容易混淆的地方

先上一张图: 我希望找到某个版本为8的一个libXXX.8XXX.so ,那么应该怎么写呢? 先看这种写法对不对: 是不是结果出乎你的意料之外? 那么我们来看一下规则: 这里的 "*" 表示匹配前一个字符的零个或多个 于是我们就不难理解了: lib*8*.so 表示 包…

24近3年内蒙古大学自动化考研院校分析

今天给大家带来的是内蒙古大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、内蒙古大学 学校简介 内蒙古大学位于内蒙古自治区首府、历史文化名城呼和浩特市&#xff0c;距北京400余公里&#xff0c;是中华人民共和国成立后党和国家在民族地区创办的第一所综合大…