Django 在Windows 64位上使用Python 2.7安装mod_wsgi
我正在尝试将我的Django网站部署到windows 64位机器(windows Server 2008 R2)上,该网站是使用Python 2.7编写的。我从安装了Apache的预编译版本(Apache 2.4.16 x64)(由于缺少Apache Lounge***提供的选项),并检查了Python 2.7是否在64位上运行,是否使用VC9编译。我找不到mod_wsgi的预构建二进制文件(适用于Windows 64位并使用VC9编译),因此我从下载了mod_wsgi的源代码,并按照从的方向,将Django 在Windows 64位上使用Python 2.7安装mod_wsgi,django,apache,mod-wsgi,Django,Apache,Mod Wsgi,我正在尝试将我的Django网站部署到windows 64位机器(windows Server 2008 R2)上,该网站是使用Python 2.7编写的。我从安装了Apache的预编译版本(Apache 2.4.16 x64)(由于缺少Apache Lounge***提供的选项),并检查了Python 2.7是否在64位上运行,是否使用VC9编译。我找不到mod_wsgi的预构建二进制文件(适用于Windows 64位并使用VC9编译),因此我从下载了mod_wsgi的源代码,并按照从的方向,
ap24py27-win64-VC9.mk
文件更改为指向APACHE_ROOTDIR
和PYTHON_ROOTDIR
的正确目录,并使用C++ 2008 64位命令提示符运行命令<代码> nFas-F AP24PY27—WI64-VC9MK CURLUTION/CODE >。但是,这给了我一个错误:
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的官方文件警告不要使用Apache Lounge以外其他来源的二进制文件,但我似乎无法从该站点找到正确的编译版本(适用于VC9和Windows 64位)。这可能是个问题吗?如果是,我该如何解决
更新:按照阿德林的建议,我能够运行namke-f ap24py27-win64-VC9.mk clean
。但是,当我尝试运行namke-f ap24py27-win64-VC9.mk
或namke-f ap24py27-win64-VC9.mk install
时,我会收到几页警告,上面写着:warning C4820:“…”:“…”在数据成员“…”
之后添加字节填充,直到编译器退出
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.
致命错误C1083:无法打开包含文件:“Python.h”:没有这样的文件或目录
…\mod_wsgi-4.4.13\src\server\wsgi_memory.c:警告C4711:为自动内联扩展选择了函数“getCurrentRSS”
nGuff:致命错误U1077:“C:\…\微软PysVisualC++用于Python \\\\VC\bin \AMD64 \ C1.exe”:“返回代码”0x2’
停止
有人知道为什么会这样吗?我应该如何着手解决它?我也有同样的错误
问题是cl.exe
找不到psapi.lib
。此库包括wsgi_memory.c
-GetProcessMemoryInfo
中引用的函数
要解决此问题,应遵循以下步骤:
psapi.lib
(在C:\
上运行搜索)ap24py27-win64-VC9.mk
文件,使用
任何文本编辑器.mk
文件。很可能common-VC9.mk
common-VC9.mk
)LDFLAGS
下,添加另一行/LIBPATH:“在步骤1找到路径”\
psapi.lib
,那是因为你没有Windows SDK。我安装了和SDK,并最终将psapi.lib
放在这里C:\ProgramFiles(x86)\Windows Kits\8.1\lib\winv6.3\um\x64
编辑:
为了以一种比较一般的方式为您的最新错误提供解决方案,每当nmake
抛出“无此类文件”
错误时,文件的位置未在common-VC9.mk
文件中正确引用
有两种类型的文件nmake
将查找:.h
或.lib
如果未找到.h
,则应在common-VC9.mk
文件的CPPFLAGS
变量下正确引用相应的路径。
如果未找到.lib
,则需要相应地更新LDFLAGS
路径
怎么做?与包含psapi.lib路径的方法相同:找到文件并将相应路径附加到适当的变量:
CPPFLAGS
或LDFLAGS
谢谢!我能得到nmake。。。清理
以按照您的建议运行,但现在当我尝试运行nmake…
和nmake…,编译器会抛出错误。。。安装
。我已经更新了问题以反映这些新错误-您对这个问题有什么见解吗?好的,这是有道理的。当我在cppfagas
中将路径添加到python.h
中时,将LIBPATH
添加到.h
文件中的等价物是什么?专门用于python.h
,因为我看到您有python2.7,它应该是一行新的“/I”C:\Python27\include”`(假设您在该目录中安装了python)。