Próbuję zainstalować PyODBC na Heroku, ale dostaję fatal error: sql.h: No such file or directory
w logach, gdy pip działa. Jak naprawić ten błąd?sql.h nie znaleziono podczas instalowania PyODBC na Heroku
Odpowiedz
Potrzebujesz pakietu devel UnixODBC. Nie wiem, jakiego distro używasz, ale możesz google i budować ze źródła.
Aby śledzić na poniższej odpowiedzi ...
Przykład dla Ubuntu:
sudo apt-get install unixodbc unixodbc-dev
Przykład CentOS:
sudo yum install unixODBC-devel
W systemie Windows:
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=yourserver.yourcompany.com;DATABASE=yourdb;UID=user;PWD=password')
W systemie Linux:
conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=yourserver.yourcompany.com;PORT=1433;DATABASE=yourdb;UID=user;PWD=password;TDS_VERSION=7.2')
Hi Flipper! Thanks for the commands. Używam Git Bash dla Windows. Czy możesz zasugerować, jak to zrobić. Jeszcze jedną rzeczą jest to, że mogę zainstalować lokalnie pakiet Pyodbc w moim systemie. Ale kiedy serwer Heroku próbuje zainstalować ten sam pakiet po stronie serwera, otrzymuję ten błąd. –
Nie ma problemu! Używasz Windows do programowania i Linuxa na Heroku? Może to być trudne (Święty Graal ma mieć tak jak to tylko możliwe identyczne środowisko rozwoju i produkcji). Najpierw proponuję zdecydowanie używając virtualenv, następnie używając pyodbc ze sterownikiem SQL Server na Windows/dev i FreeTDS/unixODBC na Linux/prod Heroku. Zmienię mój przykład powyżej. – FlipperPA
Wielkie dzięki! Spróbuję tego. –
Pozostałe odpowiedzi są mniej więcej poprawne; brakuje Ci pakietu unixodbc-dev[el]
dla twojego systemu operacyjnego; to właśnie potrzebuje pip
, aby zbudować pyodbc
ze źródła.
Jednak znacznie łatwiej jest zainstalować pyodbc
za pośrednictwem menedżera pakietów systemowych. Na przykład na Debianie/Ubuntu będzie to apt-get install python-pyodbc
. Ponieważ pyodbc
ma wiele skompilowanych komponentów i interfejsów mocno z pakietami UnixODBC na poziomie systemu operacyjnego, prawdopodobnie lepiej pasuje do pakietu systemowego niż do Pythona/PIP-a.
Wciąż możesz wymienić go jako zależność w plikach requirements.txt
, jeśli tworzysz kod do dystrybucji, ale zazwyczaj łatwiej będzie zainstalować go za pośrednictwem systemu PM.
Jedynym problemem z instalacją pyodbc z repozytoriów OS jest to, że są to * naprawdę stare * wersje pyodbc. IIRC repozytoria Ubuntu instalują v3.0.7, podczas gdy obecna stabilna wersja, jak to piszę to v4.0.21, a 4.x jest znacznie lepsza niż 3.x w obsłudze Unicode. –
Możesz dodać Heroku zbudować pakiet do preinstalacji wymagane apt pakiety pierwsze
heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
Dodaj Aptfile
w katalogu głównym katalogu i do repozytorium oraz
unixodbc
unixodbc-dev
python-pyodbc
libsqliteodbc
będzie zainstalować wszystko, co trzeba pracować z pakietami pyodbc
lub aioodbc
z Pythona na Heroku
- 1. pgbackups na Heroku nie znaleziono
- 2. "BŁĄD: sql.h nie znaleziony" podczas instalowania klejnotu ruby-ODBC na Ubuntu
- 3. Nie znaleziono aktywów Heroku 404
- 4. Heroku: sh: cython: nie znaleziono
- 5. Nie znaleziono pliku proksy, aplikacja pyta Heroku
- 6. heroku: bash: pakiet: polecenie nie znaleziono
- 7. Błąd podczas instalowania Octave
- 8. Błąd podczas instalowania kassandra
- 9. Odmowa uprawnień podczas instalowania Pylint na VSCode
- 10. Błąd podczas instalowania Ruby 1.9.2 na Yosemite
- 11. Błąd podczas instalowania JVCL
- 12. Błąd podczas instalowania scrapy
- 13. Błąd podczas instalowania mpi4py
- 14. Błąd podczas instalowania Scrapy na Ubuntu 13.04
- 15. Nie znaleziono akceptowalnego kompilatora C w zmiennej $ PATH podczas instalowania kompilatora C
- 16. Heroku + nie gunicorn pracy (bash: gunicorn: nie znaleziono polecenia)
- 17. Problem podczas instalowania ciast php
- 18. Błąd gsl podczas instalowania mlpy
- 19. błąd podczas instalowania usługi okna System.Security.SecurityException
- 20. „texi2dvi” Nie znaleziono
- 21. Błąd podczas instalowania aplikacji (INSTALL_FAILED_DEXOPT)
- 22. Ostrzeżenie podczas instalowania wtyczki szyny
- 23. problem występujący podczas instalowania gem
- 24. Heroku pg: info i pg: psql "Nie znaleziono"
- 25. Heroku: "nie znaleziono polecenia pakietu" pod Ruby 2.0.0
- 26. wystąpił błąd podczas podpisywania: SignTool.exe Nie znaleziono
- 27. Błąd podczas instalowania Rubiego z RVM (nie instaluje się RubyGems)
- 28. Niespójne zachowanie podczas instalowania pakietów NPM na całym świecie
- 29. plik Flysystem Nie znaleziono podczas usuwania
- 30. Nie znaleziono podczas kontroli aktualizuje Eclipse
Czy zdarzyło Ci się, że to działa na Heroku? – cph
@cph Ten projekt aktualnie działa na Heroku z taką konfiguracją https://github.com/bmwant/pr-review-notifier –