pytorch + jupyter笔记本未定义名称“ _C” - python

我有一些使用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追溯(最近的呼叫
最后)
1从算法导入Argparser
----> 2从算法导入Session
3 def main():
4个打印(“主要开始”)
5个参数= Argparser.parse()

D:\ git \ stav \ stav-rl \ algorithms \ Session.py在
12
13
--->来自算法的14集。
来自algorithm.Agent导入Agent的15
16进口火炬

D:\ git \ stav \ stav-rl \ algorithms \ Episode.py在
1个作者='Noam'
2
----> 3个进口火炬
4将numpy导入为NP
5导入cv2

c:\ anaconda3 \ envs \ threadartrl \ lib \ site-packages \ torch__init __。py在

从割炬84 _C导入*
85
---> 86全部+ = [dir(C)中名称的名称
87如果name [0]!=''并且
88不是name.endswith('Base')]

NameError:未定义名称“ _C”

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

我如何获得运行代码?

参考方案

您需要Cython才能使pytorch工作:

pip3 install Cython

请参见this comment on the issue on github。

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

在Python和C++之间传输数据而无需写入Windows和Unix文件 - python

我有预先存在的python和C ++文件,其中python文件定义了许多点,而C ++代码利用其现有库进行了所需的计算。最终产品是C ++代码写入的文件。我正在寻找一种在python中获取2000点列表的方法,将其传递给函数,然后执行所有C ++代码并输出我需要的文件。其他注意事项。这必须是可以在Linux或Windows机器上工作的东西,并且最少安装新插件…

如何锁定终端运行的perl,obj c,c++,python和ruby等脚本的源代码? - python

我想出售我在perl,obj c,c ++,python,ruby,bash,php等中制作的脚本等它们都在终端中运行。 (Linux)如何锁定源代码,以便无需人们访问源代码即可分发我的脚本..?换句话说,如何将在Terminal中运行的程序的源代码锁定,以便人们可以使用该程序(如果该代码已下载到他们的Linux机器上,但他们无法访问实际的源代码)?例:ex…

在Pytorch中重复张量的特定列 - python

我有一个大小为X的pytorch张量m x n和一个长度为num_repeats的非负整数n列表(假定sum(num_repeats)> 0)。在forward()方法中,我想创建一个大小为X_dup的张量m x sum(num_repeats),其中i的列X重复num_repeats[i]次。张量X_dup将在forward()方法的下游使用,因此需…

PyQT崩溃(基础C / C++对象已被删除)在“之后”清除QTreeWidget - python

我尝试为QTreeWidget建立实时搜索,这意味着我有一个QLineEdit,并且在我键入内容时,我将在QTreeWidget中过滤显示的结果。目前,我通过QTreeWidget.findItems()获得了“仍显示的项目”foundItems = mainForm.ui.treeShips.findItems(text,QtCore.Qt.MatchCo…

Javascript + Python:将数组发送到Python脚本,将结果返回给Javascript - javascript

我想建立一个网页,该网页通过Javascript API进行许多Facebook状态更新,并将它们分类到一个数组中。然后,我想将此数组发送到Python脚本,该脚本可以专门使用NLTK.进行语言分析。在Python中获得合适的结果后,我想将结果从该脚本返回到Javascript,以显示给用户等。听起来可能吗? javascript大神给出的解决方案 是的,完…