当前位置: 首页 > news >正文

Pycharm 切换interpreter---python的环境和第三方库问题

这篇回答两个问题:

1.为什么在 pycharm中打开新的project,切换interpreter 之后发现自己之前装的库消失了?

2.为什么 interpreter 切换到python'3.8了, terminal 还是在 3.9??

问题的关键:搞懂什么是 environment,环境和pyhton编译的版本不是一个东西,python 本身的安装路径下的site-packages 和 新环境的site-packages 是不同的路径,里面的库也不一样。

简单的理解: 一个python project的编译,需要的是一个环境,

1.默认的是电脑环境变量;是用的电脑安装环境变量下面的path的第一个 python版本以及其下面的site-packages。 

2.可以创建新一个环境,这个环境里面要指定一个python版本,然后环境下的site-packages继承自这个 python 版本下的第三方库,然后可以再安装自己需要的库。所以一个好的方式是,本身python下的第三方库最好下一些通用的,然后新的环境里安装需要的特殊的库。

每个site-packages 下面的每一个库只能安装一个版本。

目录

状态1 只有 local 环境,只安装了 python 3.9 ,3.9里面安装过各种库,即package下面的东西

状态 2, 新安装一个 python 3.8, 还没装各种库(里面就numpy pipi setuptools)

状态3:新建了一个3.8环境,并安装了各种库。

状态4: 新打开了一个 名为 wolpertinger_ddpg-master 的project,add interpreter。

总结一下:

问题2是如何出现的? 即为什么我切换了 interpreter到 3.8,我的terminal还是3.9??


之前重装了python3.8以及在3.8环境下装了gym,

意思是:现在电脑上有两个python版本,1是 python3.9,是电脑系统环境里默认的python版本,二是python3.8.

然后今天发生了一件神奇的事情,我重新打开了一个新的project,名字是 wolpertinger_ddpg-master, 又切换到python 3.8编译,结果是发现我的 python 3.8里面 根本没有gym??给我干蒙了。

这只是懵逼1号,接下来更神奇的来了,我尝试 从  terminal 重新 pip gym,结果一直报错!!我把测试了python 版本, 3.9!!! 我明明已经在settings那里把intepreter 切换到3.8了,为啥terminal还是3.9???几次切换重启都没有用

Solution:

pycharm 的虚拟环境【陷阱】,你中招了吗? - 知乎 (zhihu.com)

看了这篇帖子,明白以下问题:

对于问题1,首先要明白环境 env 和 python-version的区别;我所理解的虚拟环境就是编译所需要的全部工具的环境,这里面有一个必选项就是  一个 python 编译器(不同的环境可以有不同的版本),各种第三方的库,第三方的一个名字的库只能装一个版本。

python的一个project 的 编译 需要的是一个环境, 而非一个编译器那么简单。

如何去理解这件事情呢?

先理解四个状态:

状态1 只有 local 环境,只安装了 python 3.9 ,3.9里面安装过各种库,即package下面的东西
状态 2, 新安装一个 python 3.8, 还没装各种库(里面就numpy pipi setuptools)

两种情况的逻辑示意图如上,这两个 实际上都在 安装python的安装路径下,package在 对应的安装path\Lib\site-packages下面。即现在电脑中的情况是:

装了两个version的python

他们各自下面的第三方库是:

状态3:新建了一个3.8环境,并安装了各种库。

我打开了 fjsp-drl-main这个project,在pycharm settings选择 add interpreter,选择的是3.8,然后请注意:这是选择新建了一个环境,这个环境在这个project的路径下(当然我第一次新建时候并不知道环境这个东西,才会导致后来的出错)

然后我在 这个环境的package里装了 gym==018.0等等几个第三方库。

也就是这个环境现在是这样的,注意哦,我标的Env是 这个project而不是local

那么这些库的实际路径在哪里呢??

状态4: 新打开了一个 名为 wolpertinger_ddpg-master 的project,add interpreter。

我本意是使用python 3.8编译,而且想要 使用和 上一个 project ( fjsp-drl-main)一样的库,其实也就是 ( fjsp-drl-main)的环境。但是因为不懂环境 并不等同于python的version,也就是一个python 版本可以在多个环境里存在。 这时候 发现  我的库怎么都没了??

其原因是: 这个python 3.8环境是新建的,就是 里面只有 local 38的库,就是 和 

3.8pyhton 安装路径下的package 里的是一样的。

总结一下:

就是 最开始 只有状态 1,3.9 version, 然后 安装了 第二个python版本 ,3.8version;

状态3,打开fjsp-drl-main project,新建了一个环境,编译版本是3.8,安装了第三方的库;

状态4,打开了 wolpertinger_ddpg-master,新建了一个环境,编译版本是3.8。新建的env只会继承对应的 python版本local的下的库,即 状态4现在来自状态2,所以并没有状态3下面的第三方库,这就是我为什么安装了三方库,库不见了得原因。

在从安装路径角度看一下:

状态1的packages 也就是第三方库的安装是在python本身安装路径下:

D:\APPs\Python\Python39\Lib\site-packages

状态2: D:\APPs\Python\Python3.8.5\Lib\site-packages

状态3:D:\MyWorks\PythonProject\fjsp-drl-main\venv\Lib\site-packages

状态4:D:\MyWorks\PythonProject\RL\wolpertinger_ddpg-master\venv\Lib\site-packages

状态4的site-packages  继承自 状态2,就是python3.8下面本身的那个site-packages,自然没有状态 3 site-packages里装的库了,问题1 至此结束。

问题2是如何出现的? 即为什么我切换了 interpreter到 3.8,我的terminal还是3.9??

我在状态4没找到第三方库的时候,以为操作有问题,又一次 add interpreter, 这次没有 new 一个新的 environment,而是选择了local,即选了状态2的编译环境。这个时候要注意,

选了interpreter为状态2,在terminal查询

我猜测,是Local 的环境问题。就是 现在没有新的环境,因此 ternimal并没有切换到任何环境。 选择的local 是电脑 local 的python 的编译路径。而我电脑的环境变量,3.9在3.8之前,所以电脑系统默认的python 版本就是 3.9,所以terminal显示是3.9.

解决方案:

既然我想用状态3下面的环境编译,要么把 project    ”wolpertinger_ddpg-maste“的环境切换到状态3的那个环境;要么 在状态4下面新装需要的库。

第一种切换环境:

不要新建环境,直接从 exsiting里选 状态3 的那个环境路径。

切换之后就有对应的库了

注意这个时候,terminal 还没有切换,要想把terminal切换到这个环境下,需要

D:\MyWorks\PythonProject\fjsp-drl-main\venv\Scripts

命令如下

 cd D:\MyWorks\PythonProject\fjsp-drl-main\venv\Scripts.\activate

前面出现 venv,即环境名字,说明切换成功。

也有教程如何让terminal自动切换到对应虚拟环境的,后面再说吧,累了。。。。。

相关文章:

Pycharm 切换interpreter---python的环境和第三方库问题

这篇回答两个问题: 1.为什么在 pycharm中打开新的project,切换interpreter 之后发现自己之前装的库消失了? 2.为什么 interpreter 切换到python3.8了, terminal 还是在 3.9?? 问题的关键:搞懂什…...

TP-LINK 路由器忘记密码 - 恢复出厂设置

TP-LINK 路由器忘记密码 - 恢复出厂设置 1. 恢复出厂设置2. 创建管理员密码3. 上网设置4. 无线设置5. TP-LINK ID6. 网络状态References 1. 恢复出厂设置 在设备通电的情况下,按住路由器背面的 Reset 按钮直到所有指示灯同时亮起后松开。 2. 创建管理员密码 3. 上网…...

关闭 Elasticsearch 集群的安全性设置

关闭 Elasticsearch 集群的安全性设置,特别是如果您正在使用 X-Pack,涉及到修改 Elasticsearch 的配置。以下是一般步骤,但请注意,这可能会使您的 Elasticsearch 集群面临安全风险,因此建议仅在开发或测试环境中执行此…...

[技术分享]一招解决 MySQL 中 DDL 被阻塞的问题

爱可生开源社区. 爱可生开源社区,提供稳定的MySQL企业级开源工具及服务,每年1024开源一款优良组件,并持续运营维护。 背景 之前碰到客户咨询定位DDL阻塞的相关问题,整理了一下方法,如何解决DDL被阻塞的问题。下面,就这个问题,整理了一下思路: 怎么判断一个 DDL 是…...

Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…...

自动化测试系列 之 Python单元测试框架unittest

一、概述 什么是单元测试 单元测试是一种软件测试方法,是测试最小的可测试单元,通常是一个函数或一个方法。 在软件开发过程中,单元测试作为一项重要的测试方法被广泛应用。 为什么需要单元测试 单元测试是软件开发中重要的一环&#xf…...

C语言朴素算法

#include <stdio.h> #include <string.h>// 朴素算法&#xff0c;用于字符串匹配 void naiveMatch(char* text, char* pattern) {int textLength strlen(text); // 计算文本串长度int patternLength strlen(pattern); // 计算模式串长度for …...

【力扣题解】P501-二叉搜索树中的众数-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f…...

Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1…...

深信服AF防火墙配置SSL VPN

防火墙版本&#xff1a;8.0.85 需提前确认防火墙是是否有SSL VPN的授权&#xff0c;确认授权用户数量 1、确认内外网接口划分 2、网络→SSL VPN&#xff0c;选择内外网接口地址 3、SSL VPN→用户管理→新增一个SSL VPN的用户 4、新增L3VPN资源&#xff0c;类型选择Other&…...

在Spring Cloud中使用Gateway 网关

我们在上述文章中介绍了相关Spring Cloud的五大核心组件&#xff0c;现在我们来了解一下关于Spring Cloud的网关&#xff0c;关于使用网关&#xff0c;我们同时也需要知道他在一个架构中起到的作用&#xff0c;并且&#xff0c;我们需要知道网关具体的相关功能&#xff0c;本篇…...

【Python】配置环境变量

Python配置Windows系统环境变量 打开电脑属性 ——> 高级系统设置 ——> 高级 ——> 环境变量 Python安装目录 D:\Program Files\Python39 winR打开运行&#xff0c;输入cmd打开命令窗口 python -V...

使用.Net nanoFramework 驱动ESP32的OLED显示屏

本文介绍如何使用.Net nanoFramework 驱动ESP32的OLED显示屏。我们将会从最基础的部分开始&#xff0c;逐步深入&#xff0c;让你能够理解并实现整个过程。无论你是初学者还是有一定经验的开发者&#xff0c;这篇文章都会对你有所帮助。 1. 硬件准备 1.1 ESP32开发板 这里我们…...

0基础学习VR全景平台篇第134篇:720VR全景,云台调整节点

相机、云台和脚架全套设备组装完成后需要进行调校才能开始拍摄。这一节&#xff0c;我们将主要介绍云台调整的两个内容&#xff1a;对中心靶、调三点一线。&#xff08;后附调校原理&#xff09; 云台部件名称 一、调节准备 &#xff08;一&#xff09;对于安装好的云台 1.检…...

扫地机器人地图与用户终端的同步

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/APaJheSbgTW3jNssWsp5Ng 地图数据来源于机器人算法模块&#xff0c;一般通过SLAM算法完成建图的过程。 建图过程中&#xff0c;基础数据涉及到各…...

使用机器学习进行语法错误检测/纠正

@francescofranco_39234 一、说明 一般的学习,特别是深度学习,促进了自然语言处理。各种模型使人们能够执行机器翻译、文本摘要和情感分析——仅举几个用例。今天,我们将研究另一个流行的用途:我们将使用Gramformer构建一个用于机器学习语法错误检测和纠正的管道。 阅读本文…...

从0到1快速入门ETLCloud

一、ETLCloud的介绍 ETL是将业务系统的数据经过抽取&#xff08;Extract&#xff09;、清洗转换&#xff08;Transform&#xff09;之后加载&#xff08;Load&#xff09;到数据仓库的过程&#xff0c;目的是将企业中的分散、凌乱、标准不统一的数据整合到一起&#xff0c;为企…...

QT上位机开发(会员管理软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们学习了ini文件的解析办法&#xff0c;通过QSettings类就可以很轻松地访问ini文件里面的数据。除了ini文件之外&#xff0c;另外一种经常出…...

线性代数笔记3 1.1

学习视频&#xff1a; 2.2 矩阵运算&#xff08;二&#xff09;_哔哩哔哩_bilibili 包括内容&#xff1a; p10矩阵运算&#xff08;二&#xff09; p11特殊矩阵 p12逆矩阵&#xff08;一&#xff09; p13逆矩阵&#xff08;二&#xff09;...

2023年12月编程语言排行榜

TIOBE Index for December 2023 December Headline: C# on its way to become programming language of the year 2023 2023年12月的TIOBE指数&#xff1a;12月头条:c#将成为2023年最佳编程语言 Yes, I know, we have been here before. At the end of 2022, it looked like …...

Redis VS Memcached:选择哪个更适合您的应用?

目录 1、前言 2、概念简介 2.1 Redis 2.2 Memcached 3、数据模型 4、持久性 5、分布式能力 6、性能和扩展性 7、如何选择适合您引用的缓存系统 8、结语 1、前言 Redis和Memcached都是常见的内存缓存系统&#xff0c;用于提升应用程序的性能和可扩展性。它们都具有高…...

【HarmonyOS开发】共享包HAR和HSP的创建和使用以及三方库的发布

OpenHarmony提供了两种共享包&#xff0c;HAR&#xff08;Harmony Archive&#xff09;静态共享包&#xff0c;和HSP&#xff08;Harmony Shared Package&#xff09;动态共享包。 HAR与HSP都是为了实现代码和资源的共享&#xff0c;都可以包含代码、C库、资源和配置文件&…...

安装 Node.js、npm

安装 nodejs 安装Node.js的最简单的方法是通过软件包管理器。 Node.js官网&#xff1a;https://nodejs.org/en/download/ cd /usr/local/src/wget -c https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz xz -d node-v18.16.0-linux-x64.tar.xz tar -xf node…...

解决报错:找不到显卡

今天做实验碰到一个问题&#xff1a;torch找不到显卡&#xff1a; 打开任务管理器&#xff0c;独显直接没了&#xff0c;一度以为是要去修电脑了&#xff0c;突然想到上次做实验爆显存&#xff0c;屏蔽了gpu用cpu训练&#xff1a; import os os.environ["CUDA_DEVICE_OR…...

如何使用Node.js快速创建本地HTTP服务器并实现公网访问服务端

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【社交网络分析】课程考试复盘 + 相关资料补充

【社交网络分析】考试后复盘 相关资料补充 写在最前面论述1.描述Logistic回归模型构造损失函数的主要思想。它是如何把线性回归预测模型转化为二分类模型的。Logistic回归模型构造损失函数的主要思想Logistic回归如何将线性回归预测模型转化为二分类模型 2.社交网络分析中面临…...

算法——队列+宽搜(BFS)

队列这种数据结构大都服务于一个算法——宽搜&#xff08;BFS&#xff09;。宽搜还可以运用到二叉树、图、迷宫最短路径问题、拓扑排序等等 N叉数的层序遍历 N叉树的层序遍历 题目解析 给定一个 N 叉树&#xff0c;返回其节点值的_层序遍历_。&#xff08;即从左到右&#…...

前端八股文(CSS篇)二

目录 1.css中可继承与不可继承属性有哪些 2.link和import的区别 3.transition和animation的区别 4.margin和padding的使用场景 5.&#xff1a;&#xff1a;before和&#xff1a;after的双冒号和单冒号有什么区别&#xff1f; 6.display:inline-block什么时候会显示间隙 7…...

系统架构设计师笔记

第1章计算机组成与体系结构 1.1.1计算机硬件的组成 &#xff08;1&#xff09;控制器。控制器是分析和执行指令的部件&#xff0c;也是统一指挥并控制计算机各部件协调工作的中心部件&#xff0c;所依据的是机器指令。控制器的组成包含如下。 ①程序计数器PC&#xff1a;存储下…...

Livox-Mid-360 固态激光雷达ROS格式数据分析

前言&#xff1a; Livox-Mid-360 官方采用livox_ros_driver2ROS功能包发布ROS格式的数据&#xff0c;livox_ros_driver2可以把Livox原始雷达数据转化成ROS格式并以话题的形式发布出去。 下面列举一些雷达的基本概念&#xff1a; 点云帧&#xff1a;雷达驱动每次向外发送的一…...

在线做春节网站/如何快速优化网站排名

redis–18–集群–理论 1、集群简介 1.1、主从架构 优点 读写分离&#xff0c;通过增加Slaver可以提高并发读的能力。 缺点 Master写能力是瓶颈。 1.2、哈希Slot 对象保存到Redis之前先经过CRC16哈希到一个指定的Node上&#xff0c;例如Object4最终Hash到了Node1上。将整…...

室内设计师前景怎么样/seo排名工具外包

在本地调试运行spark程序时,报错Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/spark/SparkConf,这个错误就是程序在运行时找不到类 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/SparkConfat cn.jin…...

网站建设需要做的事情/免费网络营销推广软件

在PHP中&#xff0c;数组函数 array_uintersect_assoc () 使用用户提供的回调函数比较值&#xff0c;用内置的函数比较键&#xff0c;计算数组交集。 函数语法&#xff1a; array_udiff_assoc ( array $array1 , array $array2 [, array $array3... ], callable $value_compar…...

腾讯官方网站建设/网站 推广

资料下载 coding无法使用浏览器打开&#xff0c;必须用git工具下载&#xff1a; git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git视频观看 百问网驱动大全 先学习输入系统应用编程 1. 百问网Linux视频体系 2. 建议 在《Linux系列教程之…...

团队协同网站开发/专业搜索引擎seo服务

看了几本书&#xff0c;发觉自己好久没有看书了。 这几个月逛了几次书店&#xff0c;就今天的这次属于是有点进书店的感觉。《Professional C# 2008》真的很大一本&#xff0c;拿在手里看挺辛苦的。蹲着看了几章&#xff0c;还是中文比较好看懂&#xff0c;之前看2005的英文版。…...

平面设计类的网站/友情链接买卖

SQLite分页显示&#xff1a;Select * From news order by id desc Limit 10 Offset 10这篇文章是根据 SQLite 官方 WIKI 里的内容翻译&#xff0c;如果有什么翻译不当的地方希望大家指出&#xff0c;毕竟我的英文水平实在很差。 SQLite 包括以下五个时间函数&#xff1a; date(…...