名称'_C'未定义pytorch+jupyter笔记本

问题描述 投票:0回答:4

我有一些使用 pytorch 的代码,可以在我的 IDE (pycharm) 中正常运行。

为了研究,我尝试从 jupyter 笔记本运行它。

笔记本中的代码:

from algorithms import Argparser
from algorithms import Session
def main():
    print("main started")
    args = Argparser.parse()
    session = Session(args)
    session.run()

包装如下:

|-algorithms
|---__init__.py
|---Argparser.py
|---Session.py
|---<many more files that are being used by Session>.py

其中一些文件可以

import torch

在笔记本中运行代码时,我得到

NameError Traceback(最近调用 最后)在 1 从算法导入Argparser ---->2 从算法导入Session 3 def main(): 4 print("主程序开始") 5 args = Argparser.parse()

D:\git\stav\stav-rl lgorithms\Session.py 中 12 13 ---> 14 来自算法。剧集导入剧集 15.从算法.Agent导入Agent 16支进口手电筒

D:\git\stav\stav-rl lgorithms\Episode.py 中 1 作者 = '诺姆' 2 ----> 3个进口火炬 4 将numpy导入为np 5 导入CV2

c: naconda3 nvs hreadartrl\lib\site-packages orch__init__.py 中 84 来自 torch._C 导入 * 85 ---> 86 all += [目录中名称的名称(C) 87 如果 name[0] != '' 并且 88 不是 name.endswith('Base')]

名称错误:名称“_C”未定义

错误出现

from algorithms import Session-->...-->import torch

如何让代码运行?

python jupyter-notebook jupyter pytorch torch
4个回答
25
投票

重启内核即可解决问题。


11
投票

你需要 Cython 才能让 pytorch 工作:

pip3 install Cython

请参阅 github 上关于该问题的评论

我的理解是,

_C.cpython-37m-x86_64-linux-gnu.so
中有一个名为
site-packages/torch
的库,它提供共享对象
_C
并需要Cython。 PyCharm 提供 Cython 支持,而 Jupyter 环境则不提供。


1
投票

我没有使用笔记本,所以也许这是一个不同的问题,但我最近在升级系统 libffi 后遇到了同样的错误。我可以通过安装 libffi7 来解决这个问题。

我继续并提出了一个单独的问题,假设这是一个不同的问题,但我想我应该在这里发帖以防万一。


0
投票

就我而言(谷歌colab),我重新启动了运行时并且它起作用了。

运行时 > 重新启动运行时

© www.soinside.com 2019 - 2024. All rights reserved.