I'm trying getting the following errors while trying to install/compile ctools for python (version info)
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:22:14) [MSC v.1500 64 bit (AMD64)] on win32
- OS: Windows 7 Professional 64-bit (Service Pack 1)
- Installed: Microsoft Visual C++ 2008 Express Edition
Error:
building 'deap.cTools' extension
Traceback (most recent call last):
File "setup.py", line 40, in <module>
cmdclass = {'build_py': build_py}
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\install.py", line 563, in run
self.run_command('build')
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name)
File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run
self.build_extensions()
File "C:\Python27\lib\distutils\command\build_ext.py", line 449, in build_extensions
self.build_extension(ext)
File "C:\Python27\lib\distutils\command\build_ext.py", line 499, in build_extension
depends=ext.depends)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 473, in compile
self.initialize()
File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
vc_env = query_vcvarsall(VERSION, plat_spec)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [u'path']
I've installed PyWin as suggested in here, but it didn't help. I'd appreciate help sorting out this issue.
Edit
Same issue arises when trying to install scikit-learn
File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [u'path']
I had this same problem, but just renaming the files listed above (in a somewhat opaque way) didn't work for me. What did work is a much easier solution. Just run vcvarsall.bat before you start the install. This sets the correct paths and is much easier to understand. In my case, I needed a 64 bit build so I ran: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
I experienced this issue because I did not have the 64-bit version of Visual C++ 2008. To solve the issue, I installed it through Change/Remove in Programs and Features, following this answer.
I summarized above in my blog. http://springflex.blogspot.com/2014/02/how-to-fix-valueerror-when-trying-to.html
To install Visual Studio 2008 Express Edition with all required components:
Install Microsoft Visual Studio 2008 Express Edition. The main Visual Studio 2008 Express installer is available from (the C++ installer name is vcsetup.exe):
Install the Microsoft Windows SDK. The Microsoft Windows SDK is available by searching Microsoft's download site, or by going directly to: http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
To verify that you have all installed components, check that the Microsoft SDK contains the "amd64" version of the C/C++ compiler "cl.exe". This is usually installed into
copy .../VC/bin/vcvars64.bat to .../VC/bin/vcvarsamd64.bat
copy .../VC/bin/vcvars64.bat to .../VC/bin/amd64/vcvarsamd64.bat
Since you're using the 64 bit version of Python, once you have installed Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (which installs the 64bit compiler that isn't installed when installing Visual Studio 2008 SP1 Express Edition); You need to copy the
vcvars64.bat
to a location wherevcvarsall.bat
claims it to be.From
%CSIDL_PROGRAM_FILESX86%\Microsoft Visual Studio 9.0\VC\bin\
, you need to copyvcvars64.bat
toamd64\vcvarsamd64.bat
.Note the amd part in the destination file name.
Microsoft now publishes a Visual C++ compiler just for Python 2.7, although it will work for other versions of Python that used the same compiler. Check the system requirements: setuptools 6.0 or later is required. It will not work with packages using distutils.