Pycharm在windows下使用Anaconda中的Python解释器各种报错的问题

       最近几天被windows下的软件快要搞疯了。电脑装了Anaconda3,在运行一些python程序的时候,这些程序在anaconda的自带终端中python代码可以正常运行。但是不可以使用诸如Pychrm和VS2017这种windows下非常好用的IDE开发工具。

       错误类型比较经典,都是提示找不到mkl_inter_thread.dll或者找不到其他的什么别的dll。我也是翻来覆去找了好长时间没有找到答案,包括网上说的重新安装numpy或者一些其他操作,都是不好使的。后来在实验室孙师兄的提点下,我终于发现了问题。

       原来诸如Pycharm和VS2017这些编译器,他们在编译的时候会从系统的环境变量PATH中找到他们所需要的路径,拿Python代码举例,如果软件在PATH的第五个值的路径中,找到了一个python环境,那么它就不会去第八个路径对应的python中搜索相关的python库或者其他的dll。如果我的python程序并不依赖第五个路径下的python,而是依赖第八个路径下的python,那么我的python代码就会报错,并且是上文提到的那种“无厘头”的错误。

       此外,我发现我在cmd终端下输出系统PATH的值,跟我在Anaconda的终端下输出环境变量的PATH值,二者是不一样的(指令为echo %PATH%)。下图为我在Anaconda环境中输出的PATH值

Pycharm在windows下使用Anaconda中的Python解释器各种报错的问题_第1张图片

       从图中可以看到,这个环境下的环境变量前几个值都是Anaconda的路径。但是我的cmd终端的环境变量第一个值是 C:\Program Files\Microsoft MPI\Bin;,并不是与Anaconda直接相关的路径,而且cmd终端中的PATH把与Anaconda直接相关的路径值放在了环境变量列表中很靠后的位置,这样就导致我在运行代码的时候PyCharm找到的是“其他的Python路径”。在知道问题之后,解决方法很简单。在环境变量PATH中添加一个值,这个值就是图中最前面所有与Anaconda相关的路径,不同路径之间用分号(其实就直接复制就行)。添加之后,将PATH的这个值上移到整个PATH列表的最顶端即可(这个是重点)。

Pycharm在windows下使用Anaconda中的Python解释器各种报错的问题_第2张图片

       至此,我的python代码在PyChharm下和VS2017下就都可以正常运行了,当然在各种终端里面也是可以正常运行的,因为它们的PATH中与python相关的值已经是完全统一的了。

       初学者的我哦,不知道以后还会遇到多少坑,希望大家一起学习,共同探讨。再次感谢实验室的孙师兄^_^......

你可能感兴趣的:(Python学习)