【问题标题】:pyodbc install on IBM Bluemix server error在 IBM Bluemix 服务器上安装 pyodbc 错误
【发布时间】:2017-07-07 05:02:17
【问题描述】:

我正在尝试在 IBM bluemix 上托管我的应用程序。在我的应用程序中,我使用了烧瓶,我正在尝试连接到 Azure SQL Server 数据库。所以为此,我正在使用 Pyodbc。

所以在requirement.txt 文件中我给出了 pip install pyodbcpip install flask。 这些东西正在我的本地机器上安装,并且应用程序运行良好。我正在从数据库中获取结果。

但是当我尝试在 IBM bluemix 上部署我的应用程序时, 在服务器上推送文件时,它给了我一个错误。 我附上了下面的错误截图。

requirement.txt的内容在这里

unixodbc-dev
pyodbc==3.1.1
Flask==0.12.2

【问题讨论】:

  • 环境是由 cloud Foundry buildpack 定义的 linux:docs.cloudfoundry.org/buildpacks/python。您无权在 unixODBC 等环境中安装包。我正在寻找是否有包含 unixODBC 的替代 buildpack。
  • @ChrisSnow 这些是我的requirements.txt的内容unixodbc-dev pyodbc==3.1.1 Flask==0.12.2
  • 我在这里提出了一个更具体的问题:stackoverflow.com/questions/44982510/…
  • @ChrisSnow 谢谢你我会跟踪它
  • @ChrisSnow 谢谢你我会跟踪它

标签: python flask ibm-cloud azure-sql-database pyodbc


【解决方案1】:

一种解决方案是使用 miniconda 代替 pip 来安装依赖项。在 buildpack 中使用 miniconda 已记录在 here

有关使用 miniconda 安装 pyodbc 的更多信息,请参阅 here

【讨论】:

  • 谢谢。我已经尝试过那个解决方案。我的应用程序现在正在服务器上部署,我没有收到任何错误。在 bluemix 服务器上运行该应用程序时,我收到此错误 pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found (0) (SQLDriverConnect)") 我将在下一条评论的 aap.py 文件中发布我的代码
  • 这是我收到此错误的代码。这段代码在我的本地机器上运行。但是在 bluemix 上给出了上述错误。 @app.route('/sql/<lat>/<long>') def api_sql(lat,long): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=prashantvikramsingh.database.windows.net;DATABASE=Zillow;UID=prashant;PWD=Pvs758993@') cursor = cnxn.cursor() cursor.execute("SELECT top 10 * FROM [dbo].[distance] ("+lat+","+long+") order by distance") rows = cursor.fetchall()
  • 看看这个问题和答案:stackoverflow.com/questions/38534154/…。如果这不能解决您的问题,我建议您接受这个对原始问题的回答,然后创建一个新问题。
【解决方案2】:

错误消息error: command 'gcc' failed with exit status 1 看起来您可能需要在该机器上安装 gcc C/C++ 编译器。

The pyodbc docs say:

窗户

在 Windows 上,您将需要适当的 Microsoft Visual C++ 编译器。要构建 Python 2.4 或 2.5 版本,您将需要 Visual Studio 2003 .NET 编译器。不幸的是,没有免费版本。

对于 Python 2.6 及更高版本,您可以使用免费的 Visual C++ 2008 Express 编译器。 (不要使用 2010 版本!您需要使用构建 Python 发行版的版本。)

您可以使用以下命令创建 Windows 安装程序:python setup.py bdist_wininst

其他

要在其他操作系统上构建,请使用 gcc 编译器。

在 Linux 上,pyodbc 通常是使用 unixODBC 头文件构建的,因此您需要安装 unixODBC 及其头文件。在 RedHat/CentOS/Fedora 机器上,这意味着您需要安装 unixODBC-devel:

yum install unixODBC-devel


相关:Unable to install pyodbc on Linux

【讨论】:

  • 如何安装这些东西?我必须将它们写在requirement.txt中吗?我尝试将unixODBC-devel和gcc-c++。
  • 你从命令行安装它。如果您的操作系统是 Ubuntu,this answer 建议运行 sudo apt-get install unixodbc-dev
  • 我正在使用 windows 并没有获取 windows 命令。尝试使用 pip 安装它,但它说找不到包
  • pyodbc 已安装在我的本地计算机上并且运行良好。当我尝试在 IBM bluemix 上托管应用程序时,它给出了该错误
  • 您确定您的 Bluemix 服务器运行的是 Windows 吗?从您的错误来看,您的服务器正在运行 Linux。
猜你喜欢
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 2017-08-03
相关资源
最近更新 更多