2013-02-17 2 views
4

Shapely python 라이브러리가 필요한 작은 앱을 개발했습니다. .exe 파일을 통해 Windows에 설치하여 Python27 \ Lib \ site-packages \ shapely \ DLL에 필요한 DLL 파일 (geos.dll, geos_c.dll)을 자동으로 넣습니다. 난 내 상자에 VIRTUALENV를 만들려고 할 때Flask와 Shapely를 사용하여 heroku에서 앱을 실행할 수 없습니다.

, 내가 주사위를 통해 매끈한 설치했는데 그 DLL 파일을 넣어 didnt는 그래서 난이 오류가있어 :

from shapely.geos import lgeos 
File "...\lib\site-packages\shapely\geos.py", line 71, in <module> 
_lgeos = CDLL("geos.dll") 
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 

그래서 내가 수동에 그 2 개 DLL 파일을 대체를 virtualenv \ Lib \ site-packages \ shapely \ DLLs 폴더에 저장하고 작동했습니다.

지금 내가 Heroku가에 응용 프로그램을 배포하려고하지만, 다시 다음 오류 때문에 실패
from shapely.geos import lgeos 
_lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so']) 
file "/app/.heroku/python/lib/python2.7/site-packages/shapely/geos.py", line 44, in  load_dll 
from shapely.coords import required 
file "/app/.heroku/python/lib/python2.7/site-packages/shapely/geos.py", line 47, in <module> 
libname, fallbacks or [])) 
Error: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so'] 
Process exited with status 1 
State changed from starting to crashed 

그래서 난 때문에 그 2 개 DLL 파일이 없다는의 충돌을 가정한다. 나는 별도의 폴더에 사람들이 개 파일을 복사하고 내가

#Copy Shapely DLL Files to Site packages 
cp -r $HOME/env_files/DLLs $HOME/.heroku/python/lib/python2.7/site-packages/shapely/ 

의 .profile 파이썬 환경

에 사람들이 개 파일을 복사 할 내 응용 프로그램의 루트에 .profile 파일을 만든

자식을 통해 그들을 밀어 하지만 여전히 응용 프로그램이 같은 오류로 충돌하고 있습니다.

누구든지 나를 도와 줄 수 있습니까?

답변

0

Heroku는 * .so 형식 라이브러리 이 아닌 * .dll에서 작동합니다.

그래서 ENV vars 및 dll을 삭제하십시오. github

실패에서

나는

pip install shapely 

설치 PIP를 통해 설치

관련 문제