这在使用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"扩展名.什么都行不通.
我试图使用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安装中看不到的字符串格式错误.感谢任何提示.