Bir hafta boyunca bununla mücadele ediyorum. Anında istemci sürümü 11.2.0.3.0 kullanarak uzak bir Oracle veritabanı ile bağlanmak bir python flask uygulaması çalıştırmaya çalışıyorum.Heroku'da Python cx_Oracle
sorunların bir sürü sonra ben özelleştirmek gerekir ve sonra Heroku içinde cx_Oracle yükleyebilir 3 buildpacks, ikisi kullanılarak sona erdi, ama kodu çalıştırdığınızda ben hata var:
import cx_Oracle
ImportError: libaio.so.1: cannot open shared object file: No such file or directory
Eh, bu hata çok iyi belgelenmiştir yüzden sadece yapmak için gerekli:
$ apt-get install libaio1 libaio-dev
Ama sorun nasıl çalıştırılacağı bir Heroku Uygulaması'nda apt-get?
github.com/heroku/heroku-buildpack-apt
diğer buildpacks: Üçüncü buildpack kullanma şeyden sonra
github.com/Maethorin/oracle-heroku-buildpack
github.com/Maethorin/heroku-buildpack-python
yapılandırıldığı, bir Heroku dağıtmak koşucu ve yürütme aynı hata var. Ben Heroku dağıtımında görebildiğim, heroku-buildpack-apt
'un işini yaptığını ancak import cx_Oracle
'da aynı hatayı aldım. Btw, emin olmak için, kullandım çatallı python buildpack değiştirdim, her dağıtımda pip uninstall cx_Oracle
yapmak, böylece yeni derlenmiş bir sürümü olabilir.
Bu noktada, Büyük İnternet artık bana yardım edemedi. Baktığım her yerde, libaio'yu yükleme seçeneğim var. Ben kullanmayla ilgili arama çalıştı Heroku Uygulaması'nda apt-get ancak
herşey işaret ettiği heroku-buildpack-apt
Sorun cx_Oracle yüklü libaio bulamıyorum olabileceğini düşünüyorum ve ben Heroku App ortam değişkenleri bir sürü setted:
$ heroku config:set ORACLE_HOME=/app/vendor/oracle_instantclient/instantclient_11_2
$ heroku config:set LD_LIBRARY_PATH=/app/.apt/usr/lib/x86_64-linux-gnu:/app/vendor/oracle_instantclient/instantclient_11_2:/app/vendor/oracle_instantclient/instantclient_11_2/sdk:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib:/lib
$ heroku config:set LIBRARY_PATH=/app/.apt/usr/lib/x86_64-linux-gnu:/app/vendor/oracle_instantclient/instantclient_11_2:/app/vendor/oracle_instantclient/instantclient_11_2/sdk:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib:/lib
$ heroku config:set INCLUDE_PATH=/app/.apt/usr/include
$ heroku config:set PATH=/bin:/sbin:/usr/bin:/app/.apt/usr/bin
$ heroku config:set PKG_CONFIG_PATH=/app/.apt/usr/lib/x86_64-linux-gnu/pkgconfig
$ heroku config:set CPPPATH=/app/.apt/usr/include
$ heroku config:set CPATH=/app/.apt/usr/include
DÜZENLEME:
drwx------ 3 u32473 dyno 4096 Dec 21 2013 .
drwx------ 3 u32473 dyno 4096 Dec 21 2013 ..
-rw------- 1 u32473 dyno 16160 May 9 2013 libaio.a
lrwxrwxrwx 1 u32473 dyno 37 May 9 2013 libaio.so -> /lib/x86_64-linux-gnu/libaio.so.1.0.1
drwx------ 2 u32473 dyno 4096 May 17 16:57 pkgconfig
012: Ben libaio bu var yüklü gereken bir heroku run ls -la /app/.apt/usr/lib/x86_64-linux-gnu
çalıştırdığınızda
: Bunu söylemeyi unutmuşum
Ancak heroku run ls -l /lib/x86_64-linux-gnu/libaio.so.1.0.1
çalıştırdığımda orada dosya yok. Yani asıl sorun libaio'nun nerede kurulduğu.
Bu işi yapmama yardımcı olabilecek herkes var mı? Ya da cx_Oracle için başka bir iyi ikame var mı?
Teşekkürler!
gerçekte LD_LIBRAY_PATH içinde dizinleri birine yüklendiğini libaio doğrulamak yapabiliyor musunuz? –
Ben ty –