安装Nest Neural Simulator后,在尝试运行安装中的任何示例python文件时,我不断收到以下错误。我已经尝试重新安装Nest,Python和使用Anaconda,但没有去。
Python错误:
ImportError:没有名为nest的模块
建议?
答案 0 :(得分:2)
在https://nest-simulator.org/documentation,您现在可以找到许多不同的安装说明,以及如何解决“ ImportError:没有名为nest的模块”取决于您安装NEST的方式。
找不到nest
python模块的问题通常是因为为特定的Python版本安装了NEST,并且您无法从另一个版本加载它。因此,尽管许多操作系统仍使用Python 2.7,您可能需要显式运行
$ python3
>>> import nest
此外,如果您安装了多个Python 3.x版本,则可能仍会为其他版本安装模块,并且您必须使用python3.6
或python3.8
等来显式启动python。
正如@ nosratullah-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文件中的这一行,以便环境变量 自动设定。