Python dev_appserver无法导入`.so`文件(Pillow)

时间:2017-06-20 13:29:13

标签: python google-app-engine import

在我的GAE应用程序中,我试试这个:

from PIL import Image

得到这个:

Traceback (most recent call last):
  ...
  File "/home/sheena/Workspace/Waxed/code/waxed_backend/src/waxed_backend/concerns/misc/views.py", line 57, in home
    from PIL import Image
  File "libs/PIL/Image.py", line 56, in <module>
    from . import _imaging as core
  File "/home/sheena/Workspace/Waxed/venvs/wxt_comp/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 1024, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named PIL._imaging

/path/to/libs/PIL/imaging.so存在。从dev_appserver中导入该libs文件中的任何其他内容都没有问题。

这很好用:

cd /path/to/libs/
python
>>> from PIL import Image

我只能得出结论,dev_appserver会以某种方式破坏impotrt功能,以便无法识别.so文件。

之前有其他人见过吗?知道怎么解决吗?

1 个答案:

答案 0 :(得分:0)

_imaging是用C编写的PIL依赖项。因为它是C而不是Python,所以将lib文件夹中的库包括在内将不起作用。您需要在app.yaml文件中定义该库:

libraries:
   - name: PIL
     version: latest