python - ImportError : No shared library could be loaded, 确保安装了 librtmp

标签 python windows rtmp

我正在使用 Windows 8,并尝试使用 python-librtmp。我已按照以下步骤从此处安装 librtmp:http://pythonhosted.org/python-librtmp/。对我来说,这两条 pip install 行在 Windows Powershell 中运行时成功运行。安装后,它说库位于 c:\python27\lib\site-packages 中。

现在,我打开了一个 Python IDE (IDLE),并输入了 import librtmp。这给了我以下错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import librtmp
  File "C:\Python27\lib\site-packages\librtmp\__init__.py", line 14, in <module>
    from librtmp_ffi.binding import librtmp
  File "C:\Python27\lib\site-packages\librtmp_ffi\binding.py", line 13, in <module>
    raise ImportError("No shared library could be loaded, "
ImportError: No shared library could be loaded, make sure that librtmp is installed.

binding.py 文件:

import librtmp_config

from .ffi import ffi
from .verifier import verifier

for path in librtmp_config.library_paths:
    try:
        librtmp = ffi.dlopen(path)
        break
    except OSError:
        pass
else:
    raise ImportError("No shared library could be loaded, "
                      "make sure that librtmp is installed.")

librtmp = verifier.load_library()

librtmp_config 文件夹中的 init.py 文件:

"""Runtime configuration of python-librtmp.

   This module provides access to variables used by this library
   and makes it possible to customize some behaviour before :mod:`librtmp`
   is imported.

"""
__all__ = ["library_paths"]

#: This is a list of filenames that python-librtmp
#: will attempt to dynamically load `librtmp` from.
library_paths = ["librtmp.so", "librtmp.so.0", "librtmp.dll", "librtmp.so.1", "librtmp.dylib"]

我是 Python 的新手,这是我第一次在 Windows 中使用 Python。当我安装 librtmp 时,它说安装成功。我完全按照上面链接中的步骤操作。我不明白,为什么它说 确保安装了 librtmp

是路径问题还是安装问题?我在网上搜索解决方案,但没有任何帮助。

我需要单独安装 librtmp 吗?经过一些阅读我发现,librtmp 存在于 rtmpdump 中。我已经从 Windows 下载了 rtmpdump zip 文件。但我不知道如何安装它。 README 说,运行“make SYS=mingw”,但是 zip 文件夹没有 makefile!

但是在rtmpdump 文件夹中有一个子文件夹。该文件夹包含 librtmp.dll。如果您在上面看到,init.py 在其库路径中提到了一个 librtmp.dll。这是否意味着,我必须在 init.py 中引用此 .dll。但我不知道该怎么做。

你能帮忙吗?

最佳答案

已解决!!!我将 rtmpdump 包中的 librtmp.dll 文件复制到 C:\Python27\DLLs 中。 从binding.py_init_.py 文件内容我想,python 无法找到dll 文件。但是,我仍然不知道为什么它可以在 DLLs 文件夹中找到该文件。我只是随机尝试了一下,它成功了!

如果你们中的任何人都可以解释逻辑,那就太好了!

关于python - ImportError : No shared library could be loaded, 确保安装了 librtmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25555890/

相关文章:

flash - 如何保存这个 rtmp flash 视频流?

python - 为什么Python的类对象的deepcopy()共享类变量?

搜索嵌套列表以检查列表是否已存在的 Python 算法

python - ModuleNotFoundError : No module named <modulename> after pip install

c# - 如何根据从其他框中选择的文本更改动态创建的组合框的显示项

java - windows下下载远程文件到本地目录

windows - 寻找一个修改文件名的简单批处理脚本

python - python中有没有一种方法可以计算谷歌工作表中的一系列行(从第一行数据到最后一行数据)?

Nginx-rtmp vod 播放目录中的文件列表

android - 如何在 android 中播放来自 URL 的流媒体视频?