Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在iPy笔记本中运行unittest示例时的AttributeError_Python_Ipython Notebook - Fatal编程技术网

Python 在iPy笔记本中运行unittest示例时的AttributeError

Python 在iPy笔记本中运行unittest示例时的AttributeError,python,ipython-notebook,Python,Ipython Notebook,我是iPython的新手,试图帮助其他开发人员开始工作,我们都遇到了相同的问题 我们正试图从中运行iPython中的python unittest示例 该代码在windows和ubuntu上的命令行中运行良好,无需任何修改 iPy笔记本中完全相同的代码生成以下异常: AttributeError: 'module' object has no attribute '/home/myuser/' 文件名为:/home/myuser/example\u unittest.ipynb 到目前为止,我

我是iPython的新手,试图帮助其他开发人员开始工作,我们都遇到了相同的问题

我们正试图从中运行iPython中的python unittest示例 该代码在windows和ubuntu上的命令行中运行良好,无需任何修改 iPy笔记本中完全相同的代码生成以下异常:

AttributeError: 'module' object has no attribute '/home/myuser/'
文件名为:
/home/myuser/example\u unittest.ipynb

到目前为止,我已经绞死了iPython文档和谷歌。欢迎提供任何调试提示或解决此问题的线索

(满栈):

AttributeError回溯(最近一次调用)
在()
28
29如果uuuu name uuuuuu=='\uuuuuuu main\uuuuuuuuu':
--->30 unittest.main()
31
/usr/lib/python2.7/unittest/main.pyc在______________中(self、module、defaultTest、argv、testRunner、testLoader、exit、verbosity、failfast、catchbreak、buffer)
92 self.testLoader=testLoader
93 self.progName=os.path.basename(argv[0])
--->94自解析args(argv)
95 self.runTests()
96
/parseArgs中的usr/lib/python2.7/unittest/main.pyc(self,argv)
147.其他:
148 self.testNames=(self.defaultTest,)
-->149 self.createTests()
150除getopt.error外,消息:
151.自我使用退出(msg)
/createTests中的usr/lib/python2.7/unittest/main.pyc(self)
156.其他:
157 self.test=self.testLoader.loadTestsFromNames(self.testNames,
-->158自我保护模块)
159
160 def_do_发现(self、argv、Loader=Loader.TestLoader):
/loadTestsFromNames(self、names、module)中的usr/lib/python2.7/unittest/loader.pyc
126个字符串说明符。请参阅“loadTestsFromName()”。
127         """
-->128 suites=[self.loadTestsFromName(name,module)表示名称中的名称]
129返回自助套房类(套房)
130
/loadTestsFromName(self、name、module)中的usr/lib/python2.7/unittest/loader.pyc
98 obj=模块
99对于零件中的零件:
-->100父对象,对象=对象,获取属性(对象,零件)
101
102如果存在(对象、类型、模块类型):
AttributeError:“模块”对象没有属性“/home/myuser/”
unittest.main()主要用于命令行执行

要在ipython笔记本中运行单元测试,请删除代码中的
if uuuu name_uuu='\uuuu main_uuu'
部分,并在新单元格中创建测试套件,然后使用
TextTestRunner
运行它

suite = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
unittest.TextTestRunner().run(suite)

之所以出现此错误,是因为unittest.main检查参数(sys.argv)。这是启动iPython或Jupyter的原因

将代码更改为:

if __name__ == '__main__':
    unittest.main(argv=['first-arg-is-ignored'], exit=False)

在笔记本中,您还需要包含
exit=False
,以防止unittest.main试图关闭内核进程:

您是否正在运行链接示例中的代码?是的,完全相同的代码。在网站、notepad++(适用于windows python)和putty(适用于ubunty python)之间剪切和粘贴,和iPy笔记本浏览器窗口。请检查下面的我的答案。如果它对您的问题有帮助,请单击绿色箭头接受。如果uuu name uuuuuuu=='uuuu main uuu',您无需删除
,只需更改
unittest.main()
commands首先感谢你提供了这么漂亮的博客。但我想我还是犯了错误。/usr/lib64/python2.7/unittest/case.pyc in str_uuuuuuu(self)1102 def_uuuuuuuuuu(self):1103返回“%s(%s)”%(strclass(self.\uuuu类),->1104 self.\uuu testFunc.\uuu name)1105 1106 def repr___(self):AttributeError:'str'对象没有属性'\u name'
if __name__ == '__main__':
    unittest.main(argv=['first-arg-is-ignored'], exit=False)