ठीक है, मुझे लगता है कि जो भी मैं गलत कर रहा हूं, शायद यह स्पष्ट रूप से स्पष्ट है, लेकिन मैं इसे समझ नहीं सकता। मैंने संकुल पर ट्यूटोरियल अनुभाग को पढ़ और पढ़ा है और केवल एक चीज जिसे मैं समझ सकता हूं वह यह काम नहीं करेगा क्योंकि मैं इसे सीधे निष्पादित कर रहा हूं।पायथन पैकेज?
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()
अब, जब मैं निष्क्रिय से और आदेश से इस पर अमल लाइन जबकि निर्देशिका में, मैं निम्नलिखित त्रुटि मिलती है:
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 स्तर ऊपर 'उत्पादन' कोड कैसे आयात किया जाए?
कर सकते हैं बस का चयन यह और कोड नमूना बटन पर क्लिक करें। या इसे ' –