有两个版本的python问题

时间:2019-06-12 19:02:25

标签: python macos

在我的Mac上有两个版本的python相互影响的问题。我有以下python位置

python是/anaconda3/envs/fenicsproject/bin/python

python是/usr/bin/python

,以及当我尝试运行脚本时。我收到以下错误:

  

致命的Python错误:PyThreadState_Get:没有当前线程

     

中止陷阱:6

我已经搜索了一些解决方案,并发现了一些帖子说我应该尝试

env PYTHON_CONFIGURE_OPTS="--enable-framework"  #or 
env PYTHON_CONFIGURE_OPTS="--enable-shared" 

这是我尝试运行的代码类型

#Import packages 
import dolfin as dl

我按照here

的指示安装了环境

2 个答案:

答案 0 :(得分:1)

谷歌搜索可能找到Homebrew + Python on mac os x 10.8: Fatal Python error: PyThreadState_Get: no current thread importing mapnik,但是我找不到使用.py链接到错误版本python的库。

我还发现https://github.com/enthought/mayavi/issues/552表示建议固定到其他版本的python。

根据嬉皮士https://hippylib.readthedocs.io/en/latest/installation.html的安装说明,然后在他们说otool的地方,您需要替换以下内容:

conda create -n fenicproject ...

此后,conda create -n fenicsproject python==3.5.1 conda install -n fenicsproject -c conda-forge fenics==2017.2.0 \ mpi4py matplotlib scipy sympy==1.1.1 jupyter 不再失败。也许也可以使用更高版本的python(我只尝试过3.5.1)。

答案 1 :(得分:0)

您正在使用什么操作系统?这将在很大程度上确定如何解决此问题的细节,但是这里的关键是系统路径指向哪个Python版本以及您的IDE指向哪个Python版本。

您要避免的情况是您通过本机系统Python(可能为2)运行Python脚本。

检查您的IDE使用的是哪个Python版本(来自:How do I check what version of Python is running my script?):

import sys
print(sys.version)

第一个数字是2吗?您要使用Python 2吗?

接下来,让我们检查系统当前默认使用的版本。如果是Ubuntu / Linux,请使用:

python -V

这是预期的吗?如果不是,则可能需要更改系统环境变量以指向正确的Python版本。解决方案取决于操作系统。如果是Windows,请搜索“为您的帐户编辑环境变量”->“环境变量”->“路径”,确保它指向Anaconda或正确的Python版本。如果是Ubuntu / Linux,请检查您的.bashrc文件:

gedit ~/.bashrc

查看系统是否指向正确的Python变量。如果使用Mac,我正式道歉。