首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将Python中基于C的库与ctype一起使用时的OSError

尝试将Python中基于C的库与ctype一起使用时的OSError
EN

Stack Overflow用户
提问于 2021-09-15 20:34:58
回答 1查看 35关注 0票数 0

我目前正在尝试将一个用C编写的库与我的Python代码一起使用,但我并没有取得太大成功。我目前使用的是Windows,并且已经使用Cygwin将库(链接如下)下载、保存并安装到我的项目附近的一个目录中。

到目前为止,我不确定如何在Python代码中加载它。我遵循此链接中的说明:https://github.com/xiph/rnnoise/issues/69,但将库路径替换为相对路径,并将库保存在我的项目目录中。这是我的代码,这是返回错误

代码语言:javascript
复制
import wave
import os,sys
import ctypes
import contextlib
import numpy as np
from ctypes import util
from scipy.io import wavfile
from pydub import AudioSegment

lib_path = "rnnoise"

lib = ctypes.cdll.LoadLibrary(lib_path)

以下是指令中的版本:

代码语言:javascript
复制
import wave
import os,sys
import ctypes
import contextlib
import numpy as np
from ctypes import util
from scipy.io import wavfile
from pydub import AudioSegment

lib_path = util.find_library("rnnoise")
if (not("/" in lib_path)):
    lib_path = (os.popen('ldconfig -p | grep '+lib_path).read().split('\n')[0].strip().split(" ")[-1] or ("/usr/local/lib/"+lib_path))

lib = ctypes.cdll.LoadLibrary(lib_path)
代码语言:javascript
复制
Traceback (most recent call last):
  File "c:/Users/duyba/Documents/CET/Project/vadtest/noisetest.py", line 14, in <module>
    lib = ctypes.cdll.LoadLibrary(lib_path)
  File "C:\Users\duyba\anaconda3\lib\ctypes\__init__.py", line 459, in LoadLibrary      
    return self._dlltype(name)
  File "C:\Users\duyba\anaconda3\lib\ctypes\__init__.py", line 381, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 1920] The file cannot be accessed by the system

我对指令版的印象是,他们试图在Linux中定位库,所以我只是将库复制到项目文件夹中,不知道一旦找到库,他们将试图加载什么。此外,我认为一些环境路径问题可能在这里起作用,因为我在Windows中下载并安装了这个库。

库:https://github.com/xiph/rnnoise

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-09-15 21:13:24

这可能是文件访问权限错误。您可以通过创建一个新的虚拟环境或卸载并重新安装Python来绕过它;请参阅this post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69199485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档