繁体   English   中英

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

[英]name '_C' is not defined pytorch+jupyter notebook

我有一些使用 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()

包看起来像:

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

其中一些文件确实会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

我怎样才能让代码运行?

您需要Cython才能使pytorch工作:

pip3 install Cython

在github上查看有关此问题的评论

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

重启内核即可解决问题。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM