【问题标题】:ModuleNotFoundError in Anaconda3 when installing package with pip使用 pip 安装软件包时 Anaconda3 中的 ModuleNotFoundError
【发布时间】:2018-01-28 22:01:21
【问题描述】:

我在 mac OS 10.11.16 上运行 conda 4.4.8,我正在尝试正确安装我作为 tar.gz 文件拥有的第三方包。软件包安装似乎没有任何问题(已经尝试安装,这是我再次运行时得到的):

$: pip install ~/Downloads/pydelay-0.1.1.tar.gz

正在处理 ~/Downloads/pydelay-0.1.1.tar.gz
已满足要求(使用 --upgrade 升级): pydelay==0.1.1 from file://~/Downloads/pydelay-0.1.1.tar.gz in ~/anaconda3/lib/python3.6/site-packages
为收集的包构建轮子:pydelay
为 pydelay 运行 setup.py bdist_wheel ... 完成
存放在目录:~/Library/Caches/pip/wheels/5d/b7/4e/3896677f80cccebfc2d300904aca54ebbd6b0885cb9440e13d
pydelay搭建成功

然后我进行检查以确保没有缺少依赖项:

$: pip 检查 pydelay

没有发现有问题的需求。

但是,当我运行使用该包的代码时,我收到以下错误:

runfile('~/.../DDEin3+1D.py', wdir='~/...')
Traceback(最近一次调用最后一次):

文件“ipython-input-16-12e8207a0dca”,第 1 行,在 runfile('~/.../DDEin3+1D.py', wdir='~/...')

运行文件中的文件“~/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”,第 710 行 execfile(文件名,命名空间)

文件“~/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py”,第 101 行,在 execfile exec(编译(f.read(),文件名,'exec'),命名空间)

文件“~/.../DDEin3+1D.py”,第 18 行,在
从 pydelay 导入 dde23

文件“~/anaconda3/lib/python3.6/site-packages/pydelay/__init__.py”,第 9 行,在
从_dde23导入dde23

ModuleNotFoundError:没有名为“_dde23”的模块

我不认为它是版本问题,但因为the pydelay package is from 2009 它很可能是。

任何有关获取 spyder 编辑器(或命令行 python)以查找此包的帮助将不胜感激!

【问题讨论】:

    标签: python anaconda3 python-3.x


    【解决方案1】:

    以防万一有人遇到这样的事情,我想我会发布解决方案。在这种情况下,__init__.py 文件正在我的默认 PATH 中搜索 _dde23,它实际上与 __init__.py 位于同一目录中。解决方案是将 __init__.py 中的导入调用更改为

    从 ._dde23 导入 dde23

    这告诉文件在同一目录中查找模块。我在整个包中发现了类似的问题,并且通过这个小改动解决了所有问题。我不是专家,但这可能与我在运行 python3.x 时使用 python2.x 构建 pydelay 有关。

    当然,让这个模块的其他部分使用折旧的依赖项是另一回事;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-18
      • 2019-04-21
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 2015-02-19
      • 2015-09-21
      相关资源
      最近更新 更多