从python中的lib导入
Posted
技术标签:
【中文标题】从python中的lib导入【英文标题】:import from lib in python 【发布时间】:2020-05-11 06:57:59 【问题描述】:我导入 vtt_to_srt 转换器。我阅读了说明。我进行了安装。从开始到这个“没问题”,但是当我将它导入为手册描述 python 时找不到那里的模块。 安装
pip install vtt_to_srt3
用法
from vtt_to_srt import vtt_to_srt
path = '/path/to/file.vtt'
vtt_to_srt(path)
错误
ImportError: cannot import name 'vtt_to_srt' from 'vtt_to_srt'
我是菜鸟。很抱歉问这个问题。
【问题讨论】:
【参考方案1】:@SakuraFreak 的回答也是我的直接想法,但我最终对此进行了进一步调查。似乎 vtt_to_srt
将其所有 API 存储在模块的 __main__.py
文件中。当您想要使用python -m
的模块时,通常应该使用此文件。
这实际上使模块无法按照文档指定的方式使用。我试过了,然后是:
from vtt_to_srt.__main__ import vtt_to_srt
print(vtt_to_srt)
这会导致:
<function vtt_to_srt at 0x000002A0948216A8>
所以看起来这个解决方法是可以的。
我不知道将所有模块的代码存储在 __main__.py
中是否是我的 Python 版本(Windows 上的 CPython 3.7.3)不支持的某种约定,还是只是一个错误。也许你应该用这个联系模块的所有者。
【讨论】:
感谢您的帮助。已由您解决!如您所述,我会通知模块所有者。 如果答案有效,您应该接受它(向其他用户表明这是一个好的解决方案)。【参考方案2】:因为你试图从不存在的模块中导入一个函数。
这个模块的正确方法是:
import vtt_to_srt
【讨论】:
当我只导入 vtt_to_srt 时,它给出了模块无法调用的错误。以上是关于从python中的lib导入的主要内容,如果未能解决你的问题,请参考以下文章
使用当前文件夹中的模块的VScode Python未解析导入
论述在Python程序中如何导入OpenCV以及matplotlib库中的pyplot
ImportError:无法从“distutils”(/usr/lib/python3.8/distutils/__init__.py)导入名称“sysconfig”
ImportError:无法从“集合”(/usr/local/lib/python3.10/collections/__init__.py)导入名称“MutableMapping”