Windows上的Python -编译

Python on Windows - compiling

本文关键字:编译 Python 上的 Windows      更新时间:2023-10-16

像我之前的许多人一样,我在Windows上安装几个Python包(mysql, pycld2等)都没有成功。我的电脑是Windows 8, 64位,Python 3.4。起初,我得到了众所周知的错误"不能找到vcvarsall.bat -安装VS c++ 10.0"。我试图通过安装MinGW并将其用作编译器来解决这个问题。但这并没有奏效。最后我在这里找到了一个vsc++ 10.0的安装程序http://microsoft-visual-cpp-express.soft32.com/free-download/。这也不是很有效。现在它似乎找到了vcvarsmall文件,但却给了我几个新的错误

nclude -IC:Python34include /Tc_mysql.c /Fobuildtemp.win32-3.4Release_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
bindingspycldmodule.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

所以现在它找不到string .h和config-win.h,我对这类问题太陌生了,不知道该找什么。有人知道我该怎么做吗?

问题是我可以不使用Windows而转向Ubuntu,因为据我所知,使用python可以轻松工作。然而,我必须使用win32com包,它在Ubuntu上不存在(我理解对吗?)如果我不能解决在Windows上安装这些麻烦,解决方案是使用Windows虚拟机来完成win32com部分,然后在主机Ubuntu上完成其余部分(或者反过来)?在这种情况下,这两者之间有什么交流吗?即发送字符串或数据数组。

我在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。

希望有所帮助

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

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

为简单起见,尝试查找预编译的二进制文件。至于安装故障排除,我尝试了推荐的VC Studio 9.0的新安装,它无法找到stint .h(这,像你的一样,表明它不仅仅是坏了)。

您可以在Windows上尝试http://www.activestate.com/activepython/downloads。如果它包含已编译的二进制文件,则避免需要C编译器。

试图让python和其他包在Windows上也能很好地编译/运行,这让我感到沮丧。切换到Ubuntu无疑是一种新鲜空气。

win32com包是专门为Windows主机制作的,所以不能再使用了,但是在Ubuntu中还有其他方法可以实现同样的事情。

你是想专门针对Windows吗?你用win32com做什么?

看起来你丢失了MySQL开发包。另一个StackOverflow问题有详细信息。但如果我是你,我会走Alexander Huszagh推荐的路线,从http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

获取预编译的二进制文件。