Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

报错:AttributeError: module 'retry' has no attribute 'retry' #43

Closed
duanhonggo opened this issue May 17, 2021 · 5 comments
Closed

Comments

@duanhonggo
Copy link

duanhonggo commented May 17, 2021

import adbutils

d = adbutils.AdbClient(host="127.0.0.1", port=5037)

我在调试这句代码时,报了下面的错误:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/lenovo/Desktop/camera_factory _auto_test/untils/demo.py", line 2, in <module>
    from adbutils import adb
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\python_env\camera_factory _case\lib\site-packages\adbutils\__init__.py", line 23, in <module>
    from adbutils.mixin import ShellMixin
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\python_env\camera_factory _case\lib\site-packages\adbutils\mixin.py", line 11, in <module>
    from retry import retry
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\python_env\camera_factory _case\lib\site-packages\retry\__init__.py", line 5, in <module>
    from .api import retry
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\python_env\camera_factory _case\lib\site-packages\retry\api.py", line 7, in <module>
    from retry.compat import decorator
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\python_env\camera_factory _case\lib\site-packages\retry\compat.py", line 5, in <module>
    from decorator import decorator
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\lenovo\Desktop\camera_factory _auto_test\untils\decorator.py", line 9, in <module>
    import wda
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\python_env\camera_factory _case\lib\site-packages\wda\__init__.py", line 260, in <module>
    class BaseClient(object):
  File "C:\python_env\camera_factory _case\lib\site-packages\wda\__init__.py", line 383, in BaseClient
    @retry.retry(exceptions=WDAEmptyResponseError, tries=3, delay=2)
AttributeError: module 'retry' has no attribute 'retry'
@codeskyblue
Copy link
Member

我用的这个库 https://pypi.org/project/retry/
pip3 show retry 看看版本什么的对比对?

@duanhonggo
Copy link
Author

非常感谢,已经解决,retry版本是一样的,我在pycharm虚拟环境中会报错,在电脑本地的python环境下调试正常

@codeskyblue
Copy link
Member

codeskyblue commented May 18, 2021 via email

@duanhonggo
Copy link
Author

是这样的,我在我录屏的装饰器模块decorator.py中,调用了你tidevice 中的利用wda图片流合成mp4的方法:
elif env('system_type') == 'ios':
import wda
from untils.uitest_screenrecord import make_screenrecord
record_path = '../record/'
file_name = 'ios_' + func.name + get_now_time_num() + '.mp4'
t = tidevice.Device()
client = wda.USBClient()
client.unlock()
e_sign = False
error = None
with make_screenrecord(c=client, t=t, output_video_path=record_path + file_name):
try:
func(*args, **kwargs)
except Exception as e:
error = e
e_sign = True
time.sleep(2)
with open(record_path + file_name, 'rb+') as f:
record_read = f.read()
allure.attach(record_read, "这条用例的录像视频",
attachment_type=allure.attachment_type.MP4)
if e_sign:
raise error
else:
raise SystemTypeError

其中的improt wda写在了文件顶部,我在该模块下调试demo.py下调试 adbutils,会报错,将import wda 写道局部,就是上面那串代码,就不会报错。我认为并不是调用adbutils代码引发的
image

@duanhonggo
Copy link
Author

现在已经找到解决问题的方法,但是背后的机制,我还没有弄明白

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants