gpt4 book ai didi

Python包?

转载 作者:太空狗 更新时间:2023-10-29 19:37:06 29 4
gpt4 key购买 nike

好吧,我认为无论我做错了什么,它都可能非常明显,但我无法弄清楚。我已经阅读并重新阅读了关于包的教程部分,我唯一能想到的是这行不通,因为我是直接执行它的。这是目录设置:

eulerproject/
__init__.py
euler1.py
euler2.py
...
eulern.py
tests/
__init__.py
testeulern.py

这里是testeuler12.py(我写的第一个测试模块)的内容:

import unittest
from .. import euler12

class Euler12UnitTests(unittest.TestCase):


def testtriangle(self):
"""
Ensure that the triangle number generator returns the first 10
triangle numbers.

"""
self.seq = [1,3,6,10,15,21,28,36,45,55]
self.generator = euler12.trianglegenerator()
self.results = []
while len(self.results) != 10:
self.results.append(self.generator.next())
self.assertEqual(self.seq, self.results)

def testdivisors(self):
"""
Ensure that the divisors function can properly factor the number 28.

"""
self.number = 28
self.answer = [1,2,4,7,14,28]
self.assertEqual(self.answer, euler12.divisors(self.number))


if __name__ == '__main__':

unittest.main()

现在,当我在目录中从 IDLE 和命令行执行此命令时,出现以下错误:

Traceback (most recent call last):
File "C:\Documents and Settings\jbennet\My Documents\Python\eulerproject\tests\testeuler12.py", line 2, in <module>
from .. import euler12
ValueError: Attempted relative import in non-package

我认为问题是因为我直接运行它,所以我不能做相对导入(因为 __name__ 改变了,我对包描述的模糊理解是 __name__ 是它告诉它在哪个包中的方式的一部分),但在那种情况下,你们对如何导入存储在测试代码上一级的“生产”代码有何建议?

最佳答案

我遇到了同样的问题。我现在使用 nose运行我的测试,相关导入得到正确处理。

是的,这整个相对重要的事情令人困惑。

关于Python包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342975/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com