没有名为 'dolfin' 的模块使用 Spyder

No module named 'dolfin' using Spyder

我这辈子都做不到 dolfin运行 Spyder。起初我就是这么想的。我设法以某种方式获得了它 运行,但不是以一种方便的方式。情况是这样的:

错误

conda activate fenics, spyder, from dolfin import *: No module named 'dolfin'.

有效方法

到目前为止我做了什么

我使用从 conda 下载的建议安装了 anaconda

运行 conda create -n fenics -c conda-forge fenicsconda install fenicsconda activate fenics 安装并激活 fenics 环境。

然后启动 python 并执行 from dolfin import * 工作。 :)

运行 ipython 中的相同命令不起作用。使用 conda list 我发现

    ...
    hdf5
    hypre
    icu
    isl
    jedi
    ...

列表中没有 ipythonwhichpythonipthon 产生

    /home/hannes/anaconda3/envs/fenics/bin/python
    /home/hannes/anaconda3/bin/python

因此,conda install ipythonipythonfrom dolfin import * 也有效! :)

运行 spyderfrom dolfin import * 抛出与之前 ipython 相同的错误:No module named 'dolfin'。也许 spyder 在 fenics 的环境中也不可用? conda list ... 不,不在那里。现在开始有趣的部分...... :(conda install spyderwhich spyder 产生

    /home/hannes/anaconda3/envs/fenics/bin/spyder

但是,运行 spyder 抛出错误

    libGL error: unable to load driver: r600_dri.so
    libGL error: driver pointer missing
    libGL error: failed to load driver: r600
    libGL error: unable to load driver: r600_dri.so
    libGL error: driver pointer missing
    libGL error: failed to load driver: r600
    libGL error: unable to load driver: swrast_dri.so
    libGL error: failed to load driver: swrast
    Segmentation fault (core dumped)

这似乎是一些 opengl 问题。来自 github issue 6968conda install pyopengl 的解决方案没有帮助 :(;仍然是相同的 libGL 错误。所以,conda uninstall spyderspyder至少还给了我spyder。

目前我最好的线索

我尝试通过添加

将模块添加到 PYTHONPATH
    export PYTHONPATH="$PYTHONPATH:/home/hannes/anaconda3/envs/fenics/lib/python3.6/site-packages/"

.bashrc和运行一个不在fenics环境中的Spyder。没有成功,虽然我不确定我是否正确执行了这一步。为什么,conda activate fenicsspydersys.path吐槽:

    /home/hannes/anaconda3/lib/python3.6/site-packages/spyder
    /home/hannes/anaconda3/lib/python36.zip
    /home/hannes/anaconda3/lib/python3.6
    /home/hannes/anaconda3/lib/python3.6/lib-dynload
    /home/hannes/.local/lib/python3.6/site-packages
    /home/hannes/anaconda3/lib/python3.6/site-packages
    /home/hannes/anaconda3/lib/python3.6/site-packages/IPython/extensions
    /home/hannes/.ipython

由于那没有用,我在 运行 conda activate fenicsipython

之后得到了 from dolfin import *
    import sys
    sys.path.append('/home/hannes/anaconda3/envs/fenics/lib/python3.6/site-packages')

因为这只是一个临时解决方法(我每次启动 Spyder 时都必须添加它)我对永久修复感兴趣。

如果有任何帮助,我将不胜感激 :)。

汉内斯

(Spyder maintainer here) 由于 Spyder 3.3.1(将在几天内发布),解决方案是以下:

  1. 激活您的环境

  2. 使用以下命令安装 spyder-kernels 软件包:

    conda install spyder-kernels=0.*

  3. 还有运行那里(在系统终端)

    python -c "import sys; print(sys.executable)"

    并复制该命令返回的路径。

  4. 停用您的环境并从您的根目录或基础目录启动 Spyder。

  5. 转到

    Tools > Preferences > Python Interpreter > Use the following interpreter

    并粘贴您在第 3 步中获得的路径。

  6. 启动一个新的 IPython 控制台和 运行

    from dolfin import *

    现在应该可以了。