Jika Anda menambahkan paket PyNaCl
ke kebutuhan Anda dan mendorong ke Heroku, build gagal.
distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1
Ternyata ini bukan masalah dengan heroku-buildpack-python
, melainkan dengan PyNaCl
itu sendiri.
Saya berhasil membuatnya bekerja menggunakan kombinasi dua buildpack Heroku yang berbeda menggunakan heroku-buildpack-multi :
git://github.com/fletom/heroku-buildpack-python-libffi.git
git://github.com/fletom/heroku-buildpack-libsodium.git
Ini mengatasi masalah dengan menginstal salinan libsodium di seluruh sistem, tetapi bug asli masih ada dan saat ini memiliki tiket aktif pada pelacak masalah PyNaCl: https://github.com/pyca/pynacl/issues/79
Jika ada yang melakukan Googling dan menemukan masalah ini sampai sekarang, solusinya adalah menambahkan PyNaCl dan cffi ke file persyaratan Anda -- Anda tidak memerlukan peretasan buildpack lagi. Buildpack Python default Heroku tahu cara menginstal libffi tetapi hanya jika cffi disebutkan secara eksplisit! (https://coderanger.net/heroku-cffi/)
Saya telah membuka #296 untuk menghindari kebutuhan untuk memasukkan cffi secara eksplisit dalam file persyaratan.
Yang mengatakan orang-orang IMO harus benar-benar mulai menyematkan semua deps sebagai masalah default, terutama mengingat manfaat dari mode hash-persyaratan baru pip v8. Untuk alur kerja yang tidak terlalu menyakitkan, lihat saran di http://www.kennethreitz.org/essays/a-better-pip-workflow
Komentar yang paling membantu
Saya telah membuka #296 untuk menghindari kebutuhan untuk memasukkan cffi secara eksplisit dalam file persyaratan.
Yang mengatakan orang-orang IMO harus benar-benar mulai menyematkan semua deps sebagai masalah default, terutama mengingat manfaat dari mode hash-persyaratan baru pip v8. Untuk alur kerja yang tidak terlalu menyakitkan, lihat saran di http://www.kennethreitz.org/essays/a-better-pip-workflow