安装 Nest Neural Simulator 后,在尝试运行安装中的任何示例 python 文件时,我不断收到以下错误。我尝试重新安装 Nest、Python 和使用 Anaconda,但没有成功。
蟒蛇错误:
ImportError:没有名为nest的模块
建议?
安装 Nest Neural Simulator 后,在尝试运行安装中的任何示例 python 文件时,我不断收到以下错误。我尝试重新安装 Nest、Python 和使用 Anaconda,但没有成功。
蟒蛇错误:
ImportError:没有名为nest的模块
建议?
在https://nest-simulator.org/documentation,您现在可以找到许多不同的安装说明,以及如何解决“ImportError: no module named nest”取决于您安装 NEST 的方式。
找不到 python 模块的问题nest
通常是,NEST 是为特定的 Python 版本安装的,您无法从另一个版本加载它。因此,虽然许多操作系统仍然使用 Python 2.7,但您可能需要显式运行
$ python3
>>> import nest
此外,如果您安装了多个 Python 3.x 版本,则可能仍会为不同版本安装模块,您必须使用python3.6
orpython3.8
等显式启动 python。
正如@nosratullah-mohammadi 已经提到的,如果您安装了 Conda 风格,使用预构建的包是一个非常快速的解决方案。不幸的是,他帖子中的链接已损坏;这个应该可以工作,然后转到侧栏中的“安装”。
$ conda create --name nest -c conda-forge python3 nest-simulator
$ conda activate nest
$ python # this should load the Python from the conda env
>>> import nest # this loads nest which is installed explicitly for that Python
对于从源代码进行的每次安装,请确保在构建 NEST之前安装 Python 和其他先决条件。然后您可以创建您的临时构建目录(之后可以删除)并使用您需要的标志进行配置。
cd somewhere
mkdir nest-build
cd nest-build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/install/path -Dwith-python=3 .../sources/of/nest-simulator
替换somewhere
,/install/path
并.../sources/of/nest-simulator
使用适合您的设置的路径。(例如,结合 Conda 环境从源代码编译时,一个流行的选择是使用-CMAKE_INSTALL_PREFIX=$CONDA_PREFIX
,它将 NEST 直接安装到活动环境中。但是,NEST 绝不需要 Conda。)
根据需要添加更多-D...
标志。正如在此处cmake -LA .../sources/of/nest-simulator
指出的那样,您看到的可能标志是。您可能对最后的许多内容感兴趣。检查上述文档以获取详细信息。with-xyz
检查报告的路径和库Configuration Summary
是否有意义(您可能需要向上滚动一下才能看到)。例如,它可能看起来像这样:
--------------------------------------------------------------------------------
NEST Configuration Summary
--------------------------------------------------------------------------------
[...]
Python bindings : Yes (Python 3.6.8: /home/yourname/miniconda3/envs/nest/bin/python3)
Includes : /home/yourname/miniconda3/envs/nest/include/python3.6m
Libraries : /home/yourname/miniconda3/envs/nest/lib/libpython3.6m.so
Cython bindings : Yes (Cython 0.27.3: /home/yourname/miniconda3/envs/nest/bin/cython)
[...]
--------------------------------------------------------------------------------
[...]
PyNEST will be installed to:
/home/yourname/miniconda3/envs/nest/lib/python3.6/site-packages
--------------------------------------------------------------------------------
在此示例中,CMake 从我的 conda 环境中为 Python3.6 配置了所有内容。
如果您对您的设置感到满意并且所有找到的 Python 版本都匹配,请运行通常的
$ make # optionally with -j$(nproc)
$ make install
$ make installcheck
如果一切正常,您就完成了,可以删除构建目录以释放空间。恭喜!此外,如果事情变得过于混乱并且它似乎没有达到您的预期,有时删除构建目录并开始清理会很有用。
在其他方法中添加了一种新的安装方法,即使用 conda 包安装 Nest,它处于 beta 版本。但它有效,而且非常简单。 你可以从这里找到安装! 只需在安装 mini conda 包后运行您的终端并输入:
conda create --name ENVNAME -c conda-forge nest-simulator python
然后输入:
conda activate ENVNAME
你可以走了!
NEST 现在通过提供一个自动设置相关系统变量的脚本来提供该问题和类似问题的解决方案:
如果您的操作系统没有找到 nest 可执行文件或 Python 没有找到 nest 模块,则可能是您的路径变量设置不正确。如果 Python 由于缺少或不兼容的库而无法加载嵌套模块,也可能出现这种情况。在这种情况下,请运行
source </path/to/nest_install_dir>/bin/nest_vars.sh
设置必要的环境变量。您可能希望在 .bashrc 文件中包含这一行,以便自动设置环境变量。
原来我需要将我安装nest(用户/名称/opt/nest)的目录移动到anaconda中以下目录中的nest文件夹中。具体来说,我移动了文件夹的内容(来自嵌套安装):
/Users/name/opt/nest/lib/python2.7/site-packages/nest
进入这个:
/anaconda/lib/python2.7/site-packages/nest
免责声明:我很可能会因为没有复制 Nest 安装的所有内容而遇到问题,但是这个小技巧现在正在帮助我运行示例文件。