Windows上的Python – 编译

像我之前的许多人一样,我不能在Windows上安装一些Python包(mysql,pycld2等)。 我有一台Windows 8机器,64位和Python 3.4。 起初,我得到了众所周知的错误“找不到vcvarsall.bat – 安装VS C ++ 10.0”。 我试图通过安装MinGW并将其用作编译器来解决这个问题。 这没有奏效。 最后,我在这里find了这个VS C ++ 10.0的安装程序http://microsoft-visual-cpp-express.soft32.com/free-download/ 。 这也不是太好。 现在,似乎find了vcvarsall文件,而是给了我几个新的错误

nclude -IC:\Python34\include /Tc_mysql.c /Fobuild\temp.win32-3.4\Release\_mysql. obj /Zl_mysql.c_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\BIN\\cl.exe' failed with exit status 2 

和:

 pycldmodule.cc bindings\pycldmodule.cc(16) : fatal error C1083: Cannot open include file: ' strings.h': No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\BIN\\cl.exe' failed with exit status 2 

所以现在找不到strings.h和config-win.h,我对这些问题太陌生,不知道要找什么。 任何人都知道我该怎么办?

事情是,我可以不使用Windows,并转到Ubuntu,因为我了解,用python无痛苦地工作。 但是,我必须使用Ubuntu上不存在的win32com软件包(我理解了吗?)。 如果我不能解决这些在Windows上的安装麻烦,解决scheme是使用Windows虚拟机的win32com部分和剩下的主机Ubuntu(或反过来)? 在这种情况下,两者之间会有交stream吗? 即发送string或数据数组。

我会建议安装Ubuntu(作为Ubuntu用户),你可以双启动。 但是,这不是一个答案。

MySQLClient(Python3的fork)可以从这里获得一个预编译的二进制文件: http ://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

为简单起见,请尝试查找预编译的二进制文件。 至于安装的故障排除,我已经尝试了新的安装推荐的VC Studio 9.0,它不能找到stdint.h(这是像你的,表明它是多余的)。

您可以尝试Windows的http://www.activestate.com/activepython/downloads 。 我包括编译的二进制文件,避免需要一个C编译器。

在64位Windows上尝试安装pycld2时,我遇到了与Python 2.7完全相同的问题。

试了很多方法,比如安装VS express 2008,MingW等,只是不起作用。

什么救了我这个链接: https : //github.com/aboSamoor/polyglot/issues/11

建议的解决方案是从http://www.lfd.uci.edu/~gohlke/pythonlibs/和pip install .whl下载二进制文件

cpXX表示python的版本。 所以在我的情况下,我用cp27。

希望能帮助到你

我越来越感到沮丧,试图让Python和其他软件包在Windows上很好地编译/播放。 切换到Ubuntu是一个新鲜的空气气息,当然。

win32com软件包是专门为Windows主机设计的,所以不能再使用了,但是在Ubuntu中也有其他的方法可以实现。

你想专门针对Windows? 你用什么win32com的?

看起来像是缺少MySQL开发包。 另一个StackOverflow问题有详细信息。 但如果我是你,我会去亚历山大Huszagh推荐的路线,并从http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient得到我的预编译的二进制文件