首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows64位上使用Python2.7安装mod_wsgi

在Windows64位上使用Python2.7安装mod_wsgi
EN

Stack Overflow用户
提问于 2015-09-28 00:09:19
回答 1查看 2.9K关注 0票数 4

我正在尝试在windows 64位计算机(Windows 2008 R2)上部署使用Python2.7编写的Django网站。我从https://www.apachehaus.com/cgi-bin/download.plx安装了Apache的预编译版本(Apache2.4.16https://www.apachehaus.com/cgi-bin/download.plx)(由于ApacheL酒廊*所提供的选项不足),并检查了Python2.7在64位上运行并使用VC9进行编译。我无法为mod_wsgi找到预构建的二进制文件(适用于Windows64位,并使用VC9编译),因此我从wsgi/releases/tag/4.4.13下载了mod_wsgi的源代码,并遵循了wsgi/blob/develop/win32 32/README.rst的方向,将ap24py27-win64-VC9.mk文件更改为指向APACHE_ROOTDIRPYTHON_ROOTDIR的正确目录,并使用C++ 2008 64位命令提示符来运行命令nmake -f ap24py27-win64-VC9.mk clean。但是,这给了我一个错误:

代码语言:javascript
运行
复制
wsgi_memory.obj : error LNK2019: unresolved external symbol GetProcessMemoryInfo referenced
  in function getPeakRSS
mod_wsgi.so : fatal error LINK1120: 1 unresolved externals
NMAKE : fatal error U1077: `"...\Visual C++ for Python\9.0\VC\Bin\amd64\c1.EXE"` :
  return code `0x2`
Stop.

我已经多次阅读了mod_wsgi的安装和配置文档,并且在过去的几个小时里搜索了网络,但没有结果。我在这里做错了什么,我该怎么解决呢?

*我知道安装mod_wsgi的正式文档警告不要使用ApacheL酒廊以外的其他来源的二进制文件,但我似乎无法从站点上找到正确的编译版本(适用于VC9和Windows64位)。这会不会是个问题,如果是的话,我该如何解决呢?

Update:按照阿德林的建议,我能够让namke -f ap24py27-win64-VC9.mk clean运行。然而,当我尝试运行namke -f ap24py27-win64-VC9.mknamke -f ap24py27-win64-VC9.mk install时,我会得到几页警告:warning C4820: '...' : '...' bytes padding added after data member '...',直到编译器退出

代码语言:javascript
运行
复制
fatal error C1083: Cannot open include file: 'Python.h': No such file or directory
...\mod_wsgi-4.4.13\src\server\wsgi_memory.c<124> : warning C4711: function 'getCurrentRSS' selected for automatic inline expansion
NMAKE: fatal error U1077: '"C:\...\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\c1.EXE"' : return code '0x2'
Stop.

有人知道为什么会这样吗?我该怎么解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 09:28:01

我也犯了同样的错误。

问题是cl.exe找不到psapi.lib。这个库包含wsgi_memory.c - GetProcessMemoryInfo中引用的函数。

要解决这个问题,您应该遵循以下步骤:

  1. 找到psapi.lib (在C:\上进行搜索)
  2. 使用任何文本编辑器打开用于编译的ap24py27-win64-VC9.mk文件
  3. 查看它包括哪些其他.mk文件。很可能是common-VC9.mk
  4. 使用任何文本编辑器打开该文件(common-VC9.mk)
  5. LDFLAGS下,追加另一行/LIBPATH:"PATH_FOUND_AT_STEP_1"\
  6. 保存更改并重试

这对我来说也太痛苦了:)

如果你在任何地方都找不到psapi.lib,那是因为你没有Windows。我同时安装了Windows 7Windows 8 SDKs,最终在这里安装了psapi.lib ( C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64 )。

编辑:以某种普通的方式为您的最新错误提供解决方案,每当nmake抛出"No such file"错误时,common-VC9.mk文件中没有正确引用文件的位置。

nmake将查找两种类型的文件:.h.lib

如果找不到.h,则应在common-VC9.mk文件的CPPFLAGS变量下正确引用相应的路径。如果找不到.lib,则需要相应地更新LDFLAGS路径。

多么?与包含psapi.lib路径的方式相同:找到文件,并将相应的路径附加到适当的变量:CPPFLAGSLDFLAGS

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32814134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档