小编Mor*_*nty的帖子

WindowsError:[错误126]加载带有ctypes的DLL时

这在使用Python 2.7的Windows 7上运行良好:

lib = ctypes.cdll.LoadLibrary('prov_means')
provmeans = lib.provmeans  
Run Code Online (Sandbox Code Playgroud)

库prov_means.DLL在我的工作目录中.它导出一个简单的,独立的C函数provmeans(),没有依赖.

当我在Windows XP和Python 2.7上尝试相同的操作时,我得到了

Traceback (most recent call last):
  File "D:\python\Auxil\src\auxil.py", line 130, in <module>
    lib = ctypes.cdll.LoadLibrary('prov_means')
  File "C:\Python27\lib\ctypes\__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "C:\Python27\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found 
Run Code Online (Sandbox Code Playgroud)

我尝试将DLL复制到Windows\System32并输入完整路径名

"d:\\python\\auxil\\src\\prov_means"
Run Code Online (Sandbox Code Playgroud)

有和没有".DLL"扩展名.什么都行不通.

python windows dll ctypes

13
推荐指数
1
解决办法
3万
查看次数

在Docker镜像中安装python-sympy

我试图使用Dockerfile在基于Debian的Docker镜像中安装Sympy:

FROM  debian:jessie
RUN apt-get update && apt-get install -y \
    python \
    build-essential \
    make \
    gcc \
    pandoc \
    lrslib \
    dos2unix \
    python-dev \
    python-pygments \
    python-numpy \
    python-pip 

RUN  apt-get -y install python-sympy
....
Run Code Online (Sandbox Code Playgroud)

在第二个RUN命令中,APT工具通知我它必须下载900 MB(!)的依赖项,其中大多数是字体.这没有任何意义,因为Sympy是纯Python包.

然后我尝试了标准设置:

....
COPY    sympy-0.7.6.tar.gz /sympy-0.7.6.tar.gz
RUN     tar -xzvf /sympy-0.7.6.tar.gz
WORKDIR /sympy-0.7.6
RUN     python setup.py install
Run Code Online (Sandbox Code Playgroud)

这是有效的,但在运行容器中,Sympy会返回我在自己的Linux安装中看不到的字符串格式错误.感谢任何提示.

python sympy docker

3
推荐指数
1
解决办法
578
查看次数

标签 统计

python ×2

ctypes ×1

dll ×1

docker ×1

sympy ×1

windows ×1