私が間違っていることは何でも、それはおそらく盲目的に明らかだと思いますが、私はそれを理解することはできません。私はパッケージのチュートリアルのセクションを読んで再読しました。私が理解できるのは、これを直接実行しているので動作しないということだけです。ここでPythonパッケージ?
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__
がどのパッケージに含まれているかを示す方法の一部ですが、その場合は、テストコードから1レベル上に格納された「プロダクション」コードをインポートする方法について何をお勧めしますか?
だけで選択を行うことができますコードサンプルボタンをクリックします。あるいは '' –