名称 '_C' 未定义 pytorch+jupyter notebook

Gul*_*zar 4 python torch jupyter jupyter-notebook pytorch

我有一些使用 pytorch 的代码,它们在我的 IDE (pycharm) 中运行良好。

为了研究,我尝试从 jupyter notebook 运行它。

笔记本中的代码:

from algorithms import Argparser
from algorithms import Session
def main():
    print("main started")
    args = Argparser.parse()
    session = Session(args)
    session.run()
Run Code Online (Sandbox Code Playgroud)

包看起来像:

|-algorithms
|---__init__.py
|---Argparser.py
|---Session.py
|---<many more files that are being used by Session>.py
Run Code Online (Sandbox Code Playgroud)

其中一些文件确实如此 import torch

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

NameError Traceback(最近一次调用)在 1 from algorithm import Argparser ----> 2 from algorithm import Session 3 def main(): 4 print("main started") 5 args = Argparser.parse()

D:\git\stav\stav-rl\algorithms\Session.py in 12 13 ---> 14 from algorithm.Episode import Episode 15 from algorithm.Agent import Agent 16 import torch

D:\git\stav\stav-rl\algorithms\Episode.py in 1 author = 'Noam' 2 ----> 3 import torch 4 import numpy as np 5 import cv2

c:\anaconda3\envs\threadartrl\lib\site-packages\torch__init__.py in 84 from torch._C import * 85 ---> 86 all += [name for name in dir( C) 87 if name[0] != ' ' 和 88 不是 name.endswith('Base')]

NameError: 名称 '_C' 未定义

错误在 from algorithms import Session-->...-->import torch

我怎样才能让代码运行?

小智 44

重新启动内核即可解决问题。

  • 把它关掉然后再打开...我怎么会忘记呢? (4认同)
  • 这对我不起作用。 (3认同)

Jac*_*din 6

你需要 Cython 才能让 pytorch 工作:

pip3 install Cython
Run Code Online (Sandbox Code Playgroud)

在 github 上看到这个关于这个问题的评论

我的理解是,有一个叫库_C.cpython-37m-x86_64-linux-gnu.sosite-packages/torch提供共享对象_C,需要用Cython。PyCharm 提供 Cython 支持,而 Jupyter 环境不提供。

  • 刚刚自己找到并准备发布,谢谢!但为什么这能解决问题? (2认同)