1.如何在cmd中用python

2.PYTHONHOME的重要性

3.深受PYTHONHOME之苦的Anaconda

3.1.在navigator下打不开Spyder、Qt Console等

3.2.打不开navigator,打不开Spyder、Qt Console等


1.如何在cmd中用python

安装完anaconda后,想用cmd查看、使用python,大部分人可能会遇到‘python不是不是内部命令或外部命令,也不是可执行程序解决方案’。原因很简单,系统里面没有“python”这个变量,那就添加环境变量吧:

此电脑->属性->高级系统设置->环境变量,在系统变量里找到“PATH”,然后添加以下路径:

  1. F:\Anaconda2
  2. F:\Anaconda2\Library\bin
  3. F:\Anaconda2\Scripts

这三个路径要灵活处理,主要看你需要添加的python版本号,因为anaconda是可以管理多个版本的。例如上述的路径是添加改版本anaconda默认的python版本,该版本的python解析器就在F:\Anaconda2下。设置好环境变量,在cmd中输入python:

如果想切换版本,就需要在“PATH”中修改,比如修改成喵哥在anaconda里添加的python3.6:

  1. F:\Anaconda2\envs\x64_36
  2. F:\Anaconda2\envs\x64_36\Library\bin
  3. F:\Anaconda2\envs\x64_36\Scripts

然而,有一点需要注意:

如果在系统变量里添加了PYTHONHOME变量,必须要求PYTHONHOME与PATH中的第一个(上述)路径保持一致,不然会报错:

  1. E:\>python
  2. Fatal Python error: Py_Initialize: unable to load the file system codec
  3. File “F:\Anaconda2\lib\encodings\__init__.py”, line 123
  4. raise CodecRegistryError,\
  5. ^
  6. SyntaxError: invalid syntax
  7. Current thread 0x00002a44 (most recent call first):

当然,删掉PYTHONHOME也是一种选择,但是PYTHONHOME变量是有其存在意义的,欲知详情,往下读。

2.PYTHONHOME的重要性

PYTHONHOME变量用的地方比较多,比较常见的就是C++调用python,喵哥在其他博客(“探坑”——在C++中执行python脚本的艰辛尝试)也提到过,如果不定义一个正确的PYTHONHOME变量,会遇到类似以下的错误:

  1. Fatal Python error: Py_Initialize: unable to load the file system codec
  2. ModuleNotFoundError: No module named ‘encodings’

另外,PYTHONHOME变量的路径值也要跟调用python的版本一致,不然会出现以下错误:

  1. Fatal Python error: Py_Initialize: unable to load the file system codec
  2. File “F:\Anaconda2\lib\encodings\__init__.py”, line 123
  3. raise CodecRegistryError,\
  4. ^
  5. SyntaxError: invalid syntax
  6. Current thread 0x00002a44 (most recent call first):

其实PYTHONHOME影响的不只是其他运用python的工作,还影响管理python的工作——anaconda。

3.深受PYTHONHOME之苦的Anaconda

3.1.在navigator下打不开Spyder、Qt Console等

喵哥安装的Anaconda是默认2.7的python,由于工作需要,喵哥把PYTHONHOME设置为默认的python:

F:\Anaconda2

又由于工作需要,喵哥在navigator管理的python3.6打开Spyder,没有打开,出现了由于PYTHONHOME设置值与使用python版本不一致的错误:

这个跟前面叙述的差不多,所以修改PYTHONHOME的值就好了。。。。。。吗?

too young,too simple!

3.2.打不开navigator,打不开Spyder、Qt Console等

喵哥根据调用C++时遇到的问题,照旧修改PYTHONHOME,根据所需修改PYTHONHOME为

F:\Anaconda2\envs\x64_36

这个时候就尴尬了,连navigator都打不开,点击图标,鼠标等待圈就闪退,显然是打不开了。根据网上的方法,在系统盘里的user-用户名下删除.Spyder等文件夹也没有成功,不过这个方法对于PYTHONHOME不存在或者是anaconda默认python路径的情况下,打不开Spyder时是有效的。

然而,现在的问题不一样,删了这些文件夹,点击图标依旧是鼠标转圈圈。难道就用不了其他版本的Spyder么?

删掉PYTHONHOME万事大吉!!!

第一次觉得这个界面也蛮可爱嘛!

需要用的时候记得再添加PYTHONHOME变量。

发表评论

邮箱地址不会被公开。 必填项已用*标注