Nest模拟器:python说“没有名为nest的模块”

时间:2015-08-16 23:31:33

标签: python python-2.7 anaconda nest

安装Nest Neural Simulator后,在尝试运行安装中的任何示例python文件时,我不断收到以下错误。我已经尝试重新安装Nest,Python和使用Anaconda,但没有去。

Python错误:

  

ImportError:没有名为nest的模块

建议?

4 个答案:

答案 0 :(得分:2)

https://nest-simulator.org/documentation,您现在可以找到许多不同的安装说明,以及如何解决“ ImportError:没有名为nest的模块”取决于您安装NEST的方式。

系统Python

找不到nest python模块的问题通常是因为为特定的Python版本安装了NEST,并且您无法从另一个版本加载它。因此,尽管许多操作系统仍使用Python 2.7,您可能需要显式运行

$ python3
>>> import nest

此外,如果您安装了多个Python 3.x版本,则可能仍会为其他版本安装模块,并且您必须使用python3.6python3.8等来显式启动python。

Conda包

正如@ n​​osratullah-mohammadi已经提到的那样,如果您安装了Conda风格,则使用预构建的包是一个非常快速的解决方案。不幸的是,他的帖子中的链接已断开; this one应该可以,然后转到侧栏中的“安装”。

$ 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...标志。指出here,您在cmake -LA .../sources/of/nest-simulator上看到的可能标志。最后,您可能会对许多with-xyz感兴趣。检查前面提到的documentation是否存在故障。

检查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

万一可以解决问题,您可以删除构建目录以释放空间。恭喜你! 另外,如果事情太混乱了,并且似乎没有达到您的期望,有时删除构建目录并重新启动就很有用。

答案 1 :(得分:0)

原来我需要将我安装nest(Users / name / opt / nest)的目录移动到anaconda的以下目录中的nest文件夹中。具体来说,我移动了文件夹的内容(来自嵌套安装):

  

/Users/name/opt/nest/lib/python2.7/site-packages/nest

进入这一个:

  

/anaconda/lib/python2.7/site-packages/nest

免责声明:由于没有复制Nest安装的所有内容,我很可能会遇到问题,但是这个小黑客正在帮我运行示例文件。

答案 2 :(得分:0)

有一个新的安装方法添加到其他方法中,其中安装带有conda软件包的nest,并且处于beta版本。但它确实有效,而且非常简单。 you can find the installation from here! 只需在安装mini conda软件包后运行您的终端并输入以下命令即可:

conda create --name ENVNAME -c conda-forge nest-simulator python

然后输入:

conda activate ENVNAME

您很高兴!

答案 3 :(得分:-1)

NEST现在通过提供自动设置相关系统变量的脚本,为该问题和类似问题提供解决方案:

  

如果您的操作系统找不到嵌套可执行文件或Python   找不到嵌套模块,可能无法设置路径变量   正确。如果Python无法加载嵌套,情况也可能如此   由于缺少或不兼容的库而导致的模块。在这种情况下,请   运行

    source </path/to/nest_install_dir>/bin/nest_vars.sh
     

设置必要的环境变量。您可能想要包含   .bashrc文件中的这一行,以便环境变量   自动设定。