我有一个简单的应用程序,希望将其部署到GAE标准或灵活的环境中,并且需要生成简单的音频文件。
我有使用PySoundfile在本地(在开发服务器上)运行良好的代码,但是在部署应用程序时,底层libsndfile
遇到了错误。
Traceback (most recent call last):
File "/env/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
worker.init_process()
File "/env/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/env/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
self.wsgi = self.app.wsgi()
File "/env/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/env/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/env/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/env/local/lib/python2.7/site-packages/gunicorn/util.py", line 352, in import_app
__import__(module)
File "/home/vmagent/app/main.py", line 3, in <module>
import tonegen
File "/home/vmagent/app/tonegen.py", line 4, in <module>
import soundfile as sf
File "/env/local/lib/python2.7/site-packages/soundfile.py", line 267, in <module>
_snd = _ffi.dlopen('sndfile')
File "/env/local/lib/python2.7/site-packages/cffi/api.py", line 141, in dlopen
lib, function_cache = _make_ffi_library(self, name, flags)
File "/env/local/lib/python2.7/site-packages/cffi/api.py", line 802, in _make_ffi_library
backendlib = _load_backend_lib(backend, libname, flags)
File "/env/local/lib/python2.7/site-packages/cffi/api.py", line 797, in _load_backend_lib
raise OSError(msg)
OSError: ctypes.util.find_library() did not manage to locate a library called 'sndfile'
我也尝试wave失败。
答案 0 :(得分:1)
在灵活的环境中,您可以尝试构建和使用自定义运行时,在其中可以添加非python依赖项,例如OS库(在您的情况下为libsndfile
,并且可能需要其他任何功能)。
与How oracle jdk can be configured in Google App Engine Flexible environment中的答案基本相同。