从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

详解Python中的相对导入和绝对导入

idea导入lib后怎么用

ImportError:无法从“distutils”(/usr/lib/python3.8/distutils/__init__.py)导入名称“sysconfig”

ImportError:无法从“集合”(/usr/local/lib/python3.10/collections/__init__.py)导入名称“MutableMapping”