2017-07-07 4 views
4

J'essaie d'héberger mon application sur IBM bluemix. Dans mon application, j'ai utilisé flask et j'essaie de me connecter à la base de données Azure SQL Server. Donc pour cela, j'utilise Pyodbc.Installation de pyodbc sur une erreur de serveur IBM Bluemix

Ainsi, dans requirement.txt fichier j'ai donné pip install pyodbc et pip install flask. Ces éléments sont installés sur mon ordinateur local et l'application fonctionne correctement. Je reçois le résultat de la base de données. Mais quand j'essaie de déployer mon application sur IBM bluemix, tout en poussant les fichiers sur le serveur, il me donne une erreur. J'ai joint la capture d'écran d'erreur ci-dessous.

Le contenu de requirement.txt est ici

unixodbc-dev 
pyodbc==3.1.1 
Flask==0.12.2 

Error Message

+0

L'environnement est linux qui est défini par un buildpack cloud foundry: http://docs.cloudfoundry.org/buildpacks/python/. Vous n'avez pas accès au package d'installation dans l'environnement tel qu'unixODBC. Je cherche à voir s'il existe un autre buildpack contenant unixODBC. –

+0

@ChrisSnow ce sont le contenu de mon requirement.txt 'unixodbc-dev pyodbc == 3.1.1 Flask == 0.12.2' – PriyalChaudhari

+0

J'ai créé une question plus spécifique ici: https://stackoverflow.com/questions/44982510/erreur-fatale-sql-h-avec-unixodbc-et-pyodbc-comme-un-fournisseur-app-dépendance –

Répondre

1

miniconda Une solution consiste à utiliser pour installer vos dépendances au lieu de pépin. L'utilisation de miniconda avec le buildpack est documentée here.

Voir here pour plus d'informations sur l'utilisation de miniconda pour installer pyodbc.

+0

Merci. J'ai essayé cette solution. mon application est en cours de déploiement sur le serveur et je ne reçois aucune erreur. Lors de l'exécution de cette application sur le serveur bluemix, je reçois cette erreur 'pyodbc.Error: ('01000'," [01000] [unixODBC] [Gestionnaire de pilotes] Impossible d'ouvrir la lib 'SQL Server': fichier introuvable (0) (SQLDriverConnect) ")' Je poste mon code dans le fichier aap.py dans le prochain commentaire – PriyalChaudhari

+0

Ceci est mon code pour lequel j'obtiens cette erreur.Ce code fonctionne sur ma machine locale. mais en donnant l'erreur ci-dessus sur bluemix. '@ App.route ('/ sql// ') \t DEF api_sql (lat, long): \t cnxn = pyodbc.connect (' DRIVER = {SQL Server}; SERVER = prashantvikramsingh.database.windows.net ; DATABASE = Zillow; UID = prashant; PWD = Pvs758993 @ ') \t cursor = cnxn.cursor() \t cursor.execute ("SELECT top 10 * DE [dbo]. [Distance] (" + lat + "," + long + ") ordre par distance") \t rows = cursor.fetchall() ' – PriyalChaudhari

+0

Jetez un oeil à cette question et de répondre: https://stackoverflow.com/questions/38534154/linux-python3-cant-open-lib -serveur SQL. Si cela ne résout pas votre problème, je vous suggère d'accepter cette réponse à votre question initiale et de créer une nouvelle question. –

-1

Le message d'erreur error: command 'gcc' failed with exit status 1 fait croire que vous devez peut-être installer le compilateur gcc C/C++ sur cette machine.

The pyodbc docs say:

Windows

On Windows, you will need the appropriate Microsoft Visual C++ compiler. To build Python 2.4 or 2.5 versions, you will need the Visual Studio 2003 .NET compiler. Unfortunately there is no free version of this.

For Python 2.6 and above, you can use the free Visual C++ 2008 Express compiler. (Do not use the 2010 version! You need to use the version that your Python distribution was built with.)

You can create a Windows installer using: python setup.py bdist_wininst

Other

To build on other operating systems, use the gcc compiler.

On Linux, pyodbc is typically built using the unixODBC headers, so you will need unixODBC and its headers installed. On a RedHat/CentOS/Fedora box, this means you would need to install unixODBC-devel:

yum install unixODBC-devel


connexes: Unable to install pyodbc on Linux

+0

Comment puis-je installer ces choses? Dois-je les écrire dans requirement.txt J'ai essayé de mettre unixODBC-devel et gcc-C++. – PriyalChaudhari

+0

Vous l'installez à partir de la ligne de commande. Si votre système d'exploitation est Ubuntu, [cette réponse] (https://stackoverflow.com/a/9087394/4115031) suggère d'exécuter 'sudo apt-get install unixodbc-dev'. –

+0

J'utilise Windows et ne pas obtenir la commande pour Windows. essayé d'installer en utilisant pip mais il dit package non trouvé – PriyalChaudhari