【问题标题】:How do I import a local .whl file to Jupyter notebook?如何将本地 .whl 文件导入 Jupyter 笔记本?
【发布时间】:2023-04-14 07:40:01
【问题描述】:

我正在尝试在 Jupyter 笔记本中使用 Christoph Gohlke 的 PyMVPA 包 (https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymvpa)。我已经下载了正确的版本(python 3.7 的 windowsx64),我在本地保存为 .whl 文件。

到目前为止的工作:我使用 pip 成功安装了 pymvpa2 及其相关要求。 Pip freeze 显示预期的包列表。

pip freeze
    nibabel==2.5.0
    numpy==1.17.0
    pymvpa2==2.6.5
    scipy==1.3.1
    six==1.12.0

将其他包(numpy 等)导入 Jupyter 也很顺利。

什么没用:导入 pymvpa2。 请耐心等待,我对此很陌生。以下是我尝试过的一些变体:

import mvpa2

import pymvpa2
from pymvpa2 import mvpa2

from users.finnley.downloads.pymvpa import *

from 'users.finnley.downloads.pymvpa' import pymvpa2

from 'users.finnley.downloads.pymvpa' import 'pymvpa2-2.6.5-cp37-cp37m-win_amd64.whl'

from 'users\finnley\downloads\pymvpa' import *

上述每一项都会引发 ModuleNotFoundError。

即 在 ModuleNotFoundError: 没有名为“用户”的模块

或者,

ModuleNotFoundError: No module named 'pymvpa2'

任何见解将不胜感激。

【问题讨论】:

  • 试试import mvpa2
  • 包的名称,由创建者报告并在 pip freeze 等中看到,是 pymvpa2,而不是 mvpa2。我确实试了一下,只是为了更好地衡量,但我得到了同样的错误。

标签: jupyter-notebook jupyter python-wheel


【解决方案1】:

分发包的名称是pymvpa2,但可导入模块的名称是mvpa2。所以

import mvpa2

有关分发包、可导入包/模块、VCS 模块和开发目录之间区别的更深入解释,请参阅https://*.com/a/54599368/7976758

【讨论】:

  • 之前的评论者也提出了这个建议,但没有奏效。 "ModuleNotFoundError: 没有名为 'mvpa2' 的模块
  • 这是一个不同的问题。您可能已将包安装到一个 Python 中,但正试图导入另一个 Python。 Python 包安装不是全局的——每个 Python(以及每个 Python 虚拟环境)都有自己的包列表和自己的 pip。所以你必须知道你有多少不同的 Python(包括 Jupyter 中的一个),以及哪个pip 安装到哪个 Python。
  • 感谢您的回答。我试图将它安装在我在同一会话期间打开的 jupyter 终端中,我认为这可以防止这个问题,但可能不会。我使用 print(sys.prefix) 找到了我正在工作的 jupyter 环境的名称。如何查看或更改终端的环境?
  • 最重要的信息在print(sys.path)——它是Python用来查找可导入模块的路径。 mvpa2 必须位于可导入路径中的某个位置。我不知道 Jupyter——我不使用它。