簡體   English   中英

ImportError:無法從“ myModule”導入名稱“ myClass”:我在哪里弄糟?

[英]ImportError: cannot import name 'myClass' from 'myModule': where did I mess up?

我正在嘗試使用Python進行單元測試,但是我已經嚴重超出了實踐范圍,並且遇到了導入方面的問題。

自從我做Python以來已經很長時間了,我也試圖進入單元測試。 直到最近我大部分時間都在使用bash,所以我可能忽略了一些東西。 它在Python 3上,但是我認為版本最終沒有關系。 只顯示相關代碼。

Directory structure:
myProject/
|
\keter/
|    |-keter.py
|    |-__init__.py
|
\tests/
|    |- test_first.py

在keter.py中

import os
import zipfile
import re
import xml.dom.minidom
class Converter:
    def my_function(params):
        #do stuff

在test_first.py中

import unittest
import sys
sys.path.append('../')
from keter import Converter

class TestConverter(unittest.TestCase):

    def test_instantiate(self):
        my_converter = Converter()
        self.assertIsInstance(my_converter,Converter)

在嘗試運行測試時...

$ python -m unittest discover
E
======================================================================
ERROR: test_first (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_first
Traceback (most recent call last):
  File "path_to_python\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "path_to_python\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "path_to_project\tests\test_first.py", line 5, in <module>
    from keter import Converter
ImportError: cannot import name 'Converter' from 'keter' (..\keter\__init__.py)


----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

嘗試像這樣更改您的test_first.py。

import unittest
import sys
sys.path.append('../')
import keter

class TestConverter(unittest.TestCase):

    def test_instantiate(self):
        my_converter = keter.Converter()
        self.assertIsInstance(my_converter,Converter)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM