我正在使用Windows 8,并尝试使用python-librtmp。我已按照以下步骤从此处安装librtmp:http://pythonhosted.org/python-librtmp/
。对我来说,在Windows Powershell中运行时,两个pip安装行成功运行。安装后,它表示库位于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时,它表示安装成功。我完全按照上面链接中的步骤操作。我无法理解,为什么它会说make sure that librtmp is installed
。
是路径问题还是安装问题?我在网上搜索解决方案,但没有任何帮助。
我需要单独安装librtmp吗?经过一些阅读后我发现,librtmp存在于rtmpdump中。我从windows下载了rtmpdump zip文件。但我不知道如何安装它。 README说,运行&#34; make SYS = mingw&#34;,但zip文件夹没有makefile!
但是rtmpdump文件夹中有一个子文件夹。该文件夹包含librtmp.dll。如果您在上面看到, init .py在其库路径中提到了一个librtmp.dll。这是否意味着,我必须在 init .py中引用此.dll。但我不知道该怎么做。
你能帮忙吗?
答案 0 :(得分:2)
解决!!!我将rtmpdump包中的librtmp.dll
文件复制到C:\Python27\DLLs
。
根据我想到的binding.py
和_init_.py
文件内容,python无法找到dll文件。但是,我仍然不知道为什么它可以在DLLs文件夹中找到该文件。我只是随机尝试了,它有效!
如果你们中的任何一个人都能解释这个逻辑那就太棒了!