PyCharm导入conda环境解释器无反应 | 出现“Not Python at”错误 | PyCharm环境配置
PyCharm导入conda环境解释器无反应 | 出现“Not Python at”错误 | PyCharm环境配置
我用的PyCharm版本比较旧,加之之前更新了一些东西,出现了一些配置问题。在解决问题途中,又发现了一些相关情况,于是总结整理如下。
出现“Not Python at”错误
假如你的旧项目之前运行无异常,但现在出现这个问题的话,多半是之前使用的Python解释器“不见了”,比如什么东西更新之后覆盖了原地址、原来用的解释器被你不小心移动到了其他地址等。
有时,当你在PyCharm中为这个项目重新换了一个Python解释器之后,这个错误能被解决,而有时不能被解决,这是为什么?很可能是因为项目的pyenv.cfg配置文件中的内容并没有被更改。
在PyCharm中使用如下图所示的方式创建新项目时,PyCharm会在幕后使用Python自带的venv模块创建虚拟环境。如下图所示:创建新项目时选择 “New environment using Virtualenv”(或类似选项,名称可能不同,但核心都是使用了Python自带的venv模块)
根据PyCharm的默认设置,这个新创建的虚拟环境通常会被放在项目根目录下的子目录中,通常的名字就是venv(或者env)。
venv模块属于Python标准库,当使用它创建虚拟环境时,它会生成一个pyvenv.cfg文件,这个文件会生成在该虚拟环境的根目录下。
也就是说,当你在PyCharm创建新项目时,选择了这种方式的话,在项目目录下的venv文件夹中会出现一个pyvenv.cfg文件。这个文件主要供该虚拟环境中的Python解释器在启动时读取,它最重要的功能是告诉该虚拟环境中的Python解释器三件事:
- “你是谁”(环境标识):“你运行在一个虚拟环境中,而不是全局环境”
- “你从哪来”(基础解释器定位):通过“home=…”指定了创建这个虚拟环境所使用的Python解释器的位置。 基础解释器不一定是系统全局的Python解释器,取决于是在哪个环境中使用venv创建这个虚拟环境的。
- “你该怎么活”(行为配置):隔离策略 “include-system-site-packages” 是最重要的配置项,false 表示完全隔离,不访问基础环境的第三方包;true 表示可以访问基础环境的第三方包,但安装的第三方包会优先放入本虚拟环境中。版本信息 “version” 记录的是基础环境的Python的版本,通常用于信息展示,不影响核心功能。其他配置项这里就不讲了。
一般情况下,通常不需要用户自己维护它。但是发生了“Not Python at”错误,你换了一个解释器后依然报错的情况下,就需要考虑是不是需要修改它了。按前面的推测,报错原因是虚拟环境的Python解释器所指向的基础解释器找不到了,pyvenv.cfg文件的内容和实际情况对不上号,所以改了这个文件能解决问题。
最简单的方法就是,找到一个用同样方式创建的、且运行良好的项目,把它的pyvenv.cfg文件内容复制过去,并且使用它的Python解释器,当然要考虑新环境和代码兼容性的问题,这里就不提了。或者换解释器之后,尝试根据前面说的配置项的含义更改一下其内容。
修改pyvenv.cfg文件之后,需要重新激活环境或启动新的Python进程才能生效,因此你可以运行一个代码试试看,或者重启一下PyCharm再打开这个项目,看看是否还报错。
出现“Not Python at”错误的其他可能是,没有配置PATH环境变量、PyCharm中配置的解释器路径错误、系统没有安装Python等,本文就不赘述了。
另,用conda创建的虚拟环境是不会生成pyvenv.cfg文件的。
PyCharm导入conda环境解释器无反应
在添加conda解释器时,要加载conda.bat,然后就会出现已经存在的conda环境列表,如下图所示:
点击OK之后,界面只是一闪,还是无法添加conda环境。
在网上看了一些文章,发现问题主要可能是两类:
- 第一类:PyCharm的部分缓存没有更新。所以解决方法就是,添加conda解释器没反应之后,重启PyCharm,此时就可以看到conda解释器被添加进来了。
- 第二类:PyCharm版本和conda版本不兼容。
针对第一类问题,重启就可以解决问题,你可以先试试看重启PyCharm,如果重启不能解决问题的话,得考虑是否是第二类问题了。
第二类问题稍麻烦一些,根源是PyCharm版本和conda版本的兼容性问题,主要是PyCharm版本高而conda版本低。直接上参考资料:
查看一下你的PyCharm的日志文件,在PyCharm的菜单栏中选择 Help > Show Log in Finder (Mac OS X) 或 Show Log in Explorer (Windows),会打开日志文件所在的文件夹。在第一个参考资料中有贴出PyCharm的部分日志,如果你的日志有类似的内容,基本上可以确认是同样的问题了。
而解决方法,一种是重新下载合适版本的PyCharm,或者更新conda。具体什么版本合适,可能你得自己试一试,或者参考一下我贴出的两个参考资料。
不想换版本的话(毕竟换版本比较麻烦,还牵扯到兼容性问题),添加系统解释器,找到你想用的虚拟环境的解释器,就可以正常使用了。添加后重启PyCharm,可以识别为conda环境。这个方法的缺点是,Python解释器名称不显示虚拟环境,只显示Python版本。如果这个方法不行,只能试试换版本了。
加载conda.bat之后,create键或确认键是灰色的
PyCharm跟conda的兼容性似乎不太好,在某些版本的PyCharm,可能会遇到加载conda.bat之后,create键或确认键是灰色的问题。
更新之后的版本,PyCharm的解释器类型只有三个选项:
- project venv 是当前项目的虚拟环境,选择它时会自动为我们下载一个Python解释器;
- base conda 是conda的base环境;
- custom environment 是自定义环境。
创建新项目时,我们要使用conda创建的虚拟环境的话,应选择custom environment。
- type:选择conda。
- path to conda:在anaconda(或者miniconda)的安装目录中找到condabin,再从中找到conda.bat就可以了。比如你的路径可能是 D:\anaconda3\condabin\conda.bat
- environment:中选择对应的虚拟环境即可。加载不出来的话先点击一下右边的reload environment。在列表中,名字为anaconda(或者miniconda)的安装目录的是base环境。
最后点击创建即可。有时这个时候create按钮可能是灰色的,无法创建,只要你没选错的话,就是pycharm跟conda的兼容性不太好导致的。此时我们在path to conda中换一个,选择一个可以点击创建的,比如换成D:\miniconda\_conda.exe,此时create按钮可以点击了,再把这个path换回来就行。最后点击create创建。或者选一个可以创建的路径之后,直接点击创建,然后再通过settings修改项目使用的Python解释器即可。
更多推荐
所有评论(0)