【问题标题】:Installing psycopg2 in an Azure Web App在 Azure Web 应用程序中安装 psycopg2
【发布时间】:2016-03-01 16:14:52
【问题描述】:

我使用 Heroku 来托管一个带有 postgres 后端的 Django Web 应用程序。我现在希望将这个 Web 应用程序迁移到 Azure,以利用 Azure 最近为我提供的大量优惠。

我制作了一个 Azure Web 应用,并将 postgres 数据库托管在单独的 Azure VM 上。

当我尝试在 Azure Web 应用程序中设置连续集成(为此将其连接到我的 github 帐户)时,我最终遇到了错误: 运行 setup.py (path:D:\home\site\wwwroot\env\build\psycopg2\setup.py) egg_info for package psycopg2 Error: pg_config executable not found.

即,在从 requirements.txt 安装时,尝试安装 psycopg2 (postgresql) 时失败。我正试图从这一点弄清楚下一步该做什么。根据this,我应该跑:

pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py27#egg=psycopg2

现在我无法在 https://webapp.scm.azurewebsites.net 的控制台中运行它;点子无法识别。我应该直接编辑我的requirement.txt,并包含该行而不是psycopg2==2.6吗?在这种情况下,由于它是我的主存储库,我必须记住不要将这个新的 requirements.txt 错误地推送到 Heroku。

【问题讨论】:

    标签: python django postgresql azure heroku


    【解决方案1】:

    你缺少两个关键点。

    首先,Azure Webapps 通常在 32 位系统平台上运行。如果您必须使用 64 位软件包,则需要为您的应用更新基本模式或标准模式并切换 64 位平台,请参见 Azure WebApps 的标签Configure 下方。

    所以你应该安装 psycopg2 版本git+https://github.com/nwcell/psycopg2-windows.git@win32-py27#egg=psycopg2

    其次,您可以在 Kudu 的路径D:\Python27\Scripts> 中运行 pip 命令。但不幸的是,您不能通过 pip 工具直接安装需要编译器的 python 包。请参考文档https://azure.microsoft.com/en-us/documentation/articles/web-sites-python-configure/#troubleshooting---package-installation的“疑难解答-包安装”部分了解如何处理。

    【讨论】:

    • 嘿彼得,如果我在路径中运行 pip 命令,我仍然需要删除我的 requirements.txt 中对 psycopg2==2.6 的引用,对吗?
    • 我的requirements.txt 中似乎有几个包没有轮子(根据 pythonwheels.com)。我想这意味着即使我安装了psycopg2,我最终也会被卡住。我想我最好只使用带有 Ubuntu 的 Azure VM 来托管所有内容,不是吗?
    • @HassanBaig 是的。我建议使用带有 Ubuntu 的 Azure VM 来托管您的应用程序需求。
    • 其实,我决定听从你的建议,看看兔子洞有多深。我已经做到了这一点:stackoverflow.com/questions/33993905/… 对此有何建议?
    • @HassanBaig 我尊重你的决定。尽管我从未使用过psycopg2,但我会尽我所能帮助做到这一点。据我所知,很多python包都没有安装到Azure网站,因为没有访问系统的权限。或者您是否可以尽可能使用另一个包而不是这个包,它可以安装在 Azure 上以访问 postgresql。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多