我在Windows中使用带有pip版本8.0.2的Python3.5。我使用&pap install ddt'安装了ddt库。在代码中使用ddt库时,导致导入错误。如何摆脱这个错误?
import unittest
from selenium import webdriver
from ddt import ddt, data ,unpack
import time
@ddt
class Search(unittest.TestCase):
def setUp(self):
#some code
@data(("phones",2),("music", 5))
@unpack
def test_searchproducts(self, searchterm, results):
#some code
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.5.4\helpers\pycharm\utrunner.py", line 120, in <module>
modules = [loadSource(a[0])]
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.5.4\helpers\pycharm\utrunner.py", line 41, in loadSource
module = imp.load_source(moduleName, fileName)
File "C:\Program Files (x86)\Python 3.5\lib\imp.py", line 172, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 693, in _load
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 662, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "C:\Users\murugamx\PycharmProjects\New Project\Selenium Learning\ddt.py", line 3, in <module>
from ddt import ddt, data ,unpack
ImportError: cannot import name 'ddt'
答案 0 :(得分:0)
你的py文件名是ddt。这是一个错误。您无法在导入库的名称后命名文件。
当导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,则会在变量sys.path给出的目录列表中搜索名为spam.py的文件。 sys.path从这些位置初始化:
- 包含输入脚本的目录(或未指定文件时的当前目录)。
因此,当您使用导入时,它搜索的第一个位置是您当前的目录。这就是您的错误发生的原因。