【问题标题】:Heroku tutorial with PIP, virtualenv, psycopg2, Django on Windows 7在 Windows 7 上使用 PIP、virtualenv、psycopg2、Django 的 Heroku 教程
【发布时间】:2012-02-19 04:34:06
【问题描述】:

我最近读了很多关于 Heroku 的文章,我正在考虑转向它。我想我会尝试一下他们的小教程并尝试一下。

好的。是时候表白了。虽然我安装了 virtualenv,但我并没有真正使用它。我不是一个必须经常在不同项目之间切换的人(例如我需要做的承包商)。我真的很喜欢它的想法,但只是没有那么有经验。我知道每个人都说这是这些天的最佳做法。

我遇到的问题是我无法让 pip 安装 psycopg2(这是教程的一部分)。顺便说一句,这是我正在尝试做的事情的链接 (heroku article)

所以,这对我来说不是一个新问题。我从来没有能够通过 pip 安装东西。我总是遇到问题

找不到 vcvarsall.bat

我过去在 Windows 机器上解决它的方法是下载预构建库。有兴趣不知道的可以找这些here!顺便说一句,感谢 Christoph Gohlke 维护这些!!!!

如果你搜索这个 vcvarsall.bat 错误,你会在 Stackoverflow 上找到几篇关于它的帖子。他们都没有帮助我。我最初尝试走 MingGW 路线。经过两个晚上的努力(我想我尝试了我能找到的每一个建议),我放弃了尝试(就在我把我的电脑扔出窗外并开始杀猫狂暴之前)。所以,我尝试了人们建议的另一条路线——从微软下载 VC++ 2008 Express 版本。显然,Windows 的 Python 是使用 VC++ 2008 构建的,对于某些人来说,这比使用 MinGW 更容易。这似乎对我来说效果更好,因为我至少可以让 pip 安装它。但是,当我尝试导入时,我遇到了人们似乎遇到的另一个常见问题(至少当你用谷歌搜索时你会得到点击)。

文件“C:\foo\bar\venv\lib\site-packages\psycopg2__init __.py”,第 67 行,在 从 psycopg2._psycopg 导入 BINARY、NUMBER、STRING、DATETIME、ROWID ImportError:DLL 加载失败:操作系统无法运行 %1。

经过一番研究,这似乎是编译后的 _psycopg.pyd 文件试图链接到 libpq.dll 中的问题。该文件位于 C:\Program Files (x86)\PostgreSQL\9.1\bin\ - 并且在我的路径中。

那么,有谁知道如何解决这个问题?或者有没有办法让 pip 使用我的站点包中已经成功安装(通过预建库)的 pyscopg2?注意:如果我只是将预构建的 psycopg2 包复制到虚拟环境的站点包中,我可以解决问题。它会很好地导入。但是,当您针对 heroku 的要求进行 pip freeze 时,它​​不存在。有没有办法在这上面伪造 heroku?

环境为:Windows 7(64 位)、Python 2.6.5、Django 1.3.1、virtualenv 1.6.4、PostgreSQL 9.1、pip 1.0.2

【问题讨论】:

    标签: postgresql heroku virtualenv pip psycopg2


    【解决方案1】:

    我也有同样的经历。

    我注意到,当我在旧应用程序上尝试 manage.py runserver 时,它在 virtualenv 中不起作用。当我运行python.exe manage.py runserver 时,它在 virtualenv 中工作。

    不幸的是,这个技巧似乎并不适用于 django-admin.py。我得到错误: python.exe: can't open file 'django-admin.py' [Errno 2] No such file or directory

    但是当我启动一个 python 解释器并导入 django 时,它工作得很好。

    不确定这是否有帮助,但认为值得一试。

    【讨论】:

      【解决方案2】:

      我遇到了和你一样的问题,并且一直在尝试解决问题。

      使用 Visual Basic 2008 解决我的“无法找到 vcvarsall.bat”错误后

      我安装了 PostgreSQL(无需从 StackBuilder 加载任何内容),Heroku 终于允许我毫无问题地部署我的 Django 应用程序。 安装 PostgreSQL 是部署 Django 应用程序的先决条件(通常看不到,但它位于同一页面的顶部)!

      希望这有助于您未来的用户解决您可能遇到的任何类似问题。

      【讨论】:

        【解决方案3】:

        到目前为止,我已经遇到了您所说的所有问题,并且我正在尝试记录我必须跳过哪些障碍,以便稍后在上面写一篇博客文章。我认为您看到的最新错误可以通过简单地将 Postgres bin 目录添加到您的 Windows Path 环境变量来解决。

        【讨论】:

        • 我相信这将在未来受到人们的赞赏。我需要发布我最终为解决它所做的事情。 (这基本上是放弃)。
        【解决方案4】:

        确保:

        你的 distutils.cfg 指向 mingw
        如果您在 libpq.dll 上遇到 ld 错误,则说明您已安装 32 位 PostgreSQL

        【讨论】:

          猜你喜欢
          • 2013-07-04
          • 2012-12-22
          • 2015-03-31
          • 2012-06-26
          • 2015-01-22
          • 2019-12-08
          • 2015-07-21
          • 2011-03-03
          • 2012-03-29
          相关资源
          最近更新 更多