dee*_*itz 5 python imagemagick wand aws-lambda
尝试在 AWS Lambda 上运行 Wand 以进行一些简单的图像处理。
到目前为止,我已经:
从源安装 imagemagick
wget ImageMagick
cd ImageMagick-...
./configure --prefix=/home/ec2-user/im --without-x
make && make install
Run Code Online (Sandbox Code Playgroud)将 MAGICK_HOME 设置为 /home/ec2-user/im/
pip install wand
但是当我尝试导入 wand.image 时,我得到:
import wand.image
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ec2-user/cv/local/lib64/python2.7/site-packages/wand/image.py", line 20, in <module>
from .api import MagickPixelPacket, libc, libmagick, library
File "/home/ec2-user/cv/local/lib64/python2.7/site-packages/wand/api.py", line 206, in <module>
'Try to install:\n ' + msg)
ImportError: MagickWand shared library not found.
You probably had not installed ImageMagick library.
Try to install:
http://docs.wand-py.org/en/latest/guide/install.html
Run Code Online (Sandbox Code Playgroud)
当我做 a 时它工作正常yum install ImageMagick,但由于我想捆绑它,我想我需要包含二进制文件并将魔杖安装指向它。
有什么想法吗?
由于现在有人感兴趣,我解决了这个问题,目前管理我的 lambda 项目类似于下面。
文件夹结构
-project
-init_libs.py
-lambda_function.py
-libs
-libMagickWand-6.Q16.so
-libMagickCore-6.Q16.so
-libMagick++-6.Q16.so
-site-packages
-wand
-other_modules
Run Code Online (Sandbox Code Playgroud)
init_libs.py 加载像 Wand 这样的本地库。
import sys
import os
from ctypes import cdll
from os.path import join
# manually load libraries and set paths so native libraries can be used.
exec_dir = os.getcwd()
sys.path.append(join(exec_dir, 'site-packages'))
# required for Wand
os.environ['MAGICK_HOME'] = exec_dir
lib_dir = join(exec_dir, 'lib')
# add lib to sys path for general loading
sys.path.append(lib_dir)
Run Code Online (Sandbox Code Playgroud)
lambda_function.py 现在可以导入魔杖
from wand.image import Image
print Image
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2963 次 |
| 最近记录: |