【问题标题】:python says “no module named nest” when it is in the $PATH当它在 $PATH 中时,python 说“没有名为 nest 的模块”
【发布时间】:2012-12-13 11:46:17
【问题描述】:

import nest$PATH 中时会出现“no module named nest”错误,这意味着我的系统$PATH 中有/opt/nest/lib/python2.7/site-packages:。在此位置有一个名为nest 的目录,nest 目录内的结构如下所示:

,显然有一个__init__.py。那为什么python找不到nest呢?

更多信息:

我确定我用python2.7安装了nest,并用相同的python2.7运行它。

【问题讨论】:

  • 我想应该是$PYTHONPATH
  • @AndreySobolev 如何添加? echo $PYTHONPATH 不返回任何内容。
  • Python模块搜索路径与系统PATH不同。运行 Python 并执行 import sys; print sys.path 看看你有什么。
  • @BrenBam 我想你拿到了钥匙。它不在那里。如何添加?
  • 查找 site.py - 这通常是可以进行系统范围的 sys.path 更改的地方。

标签: python shell path nest-simulator


【解决方案1】:

为了正确设置相关的环境变量,NEST 安装有一个您可以直接获取的配置

source <installpath>/bin/nest_vars.sh

这会正确设置 PATHPYTHONPATH,并将 NEST 指向正确的目录以获取动态加载的内容(模块、帮助页面……)

【讨论】:

    【解决方案2】:

    根据docs,有几种安装python包的方法:

    1. 使用distutils - 运行python setup.py install 将软件包安装到您当前发行版的site-packages
    2. --user 传递给setup.py install 在Unix 上将模块安装到~/.local/lib/python2.7/site-packages,并且此目录在正常情况下始终包含在sys.path 中;
    3. --home=$HOME 传递给setup.py install$HOME 目录下安装模块。此目录应明确包含到sys.path
    4. 修改python搜索路径:

    你可以做任何一个

       import sys
       sys.path.append('/opt/nest/lib/python2.7/site-packages')
    

    在脚本的开头;或者你可以添加

    PYTHONPATH=/opt/nest/lib/python2.7/site-packages
    export PYTHONPATH
    

    ~/.bash_profile 文件的末尾。

    更新:

    刚尝试安装nest,发现它有两种风格——32位(/opt/nest/lib下)和64位(/opt/nest/lib64下)。您可能尝试过将 32 位 python 包与 64 位 python 发行版一起使用。尝试将./zshrc 中的字符串更改为 PYTHONPATH=/opt/nest/lib64/python2.7/site-packages 看看它是否有效。至少对我有用。

    【讨论】:

    • 我尝试将它添加到我的./zshrc 文件中,然后重新启动我的系统。它不起作用。 Python 仍然给出错误:-( 我错过了什么吗?
    • echo $PYTHONPATH 输出什么?
    • /opt/nest/lib/python2.7/site-packages
    • 现在在您的sys.path 中吗?
    • 不。我尝试手动将文件复制到我的sys.path 中的路径,它现在可以工作了。我仍然无法将其添加到sys.path
    猜你喜欢
    • 2019-08-29
    • 2018-03-18
    • 1970-01-01
    • 2016-03-05
    • 2014-06-29
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多