Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miniconda34-x64 failing with raise ValueError(str(list(result.keys()))) #157

Closed
peterjc opened this issue Apr 4, 2018 · 6 comments
Closed

Comments

@peterjc
Copy link
Contributor

peterjc commented Apr 4, 2018

It took a couple of tweaks to refresh the multibuild configuration for our repository https://github.com/biopython/biopython-wheels/ but I was able to build all our Mac and Linux wheels using TravisCI, and almost all the Windows wheels.

Our current appveyor.yml file,

https://github.com/biopython/biopython-wheels/blob/77b948054f4207cec563e922781f93054f82745d/appveyor.yml

This single target is failing:

    - PYTHON: "C:\\Miniconda34-x64"
      PYTHON_VERSION: "3.4"
      PYTHON_ARCH: "64"
      BUILD_DEPENDS: "numpy==1.9.0"
      TEST_DEPENDS: "numpy==1.9.0"

https://ci.appveyor.com/project/biopython/biopython-wheels/build/1.0.54/job/86t1cjvxigjqodv4

python setup.py bdist_wheel
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.4
creating build\lib.win-amd64-3.4\Bio
copying Bio\bgzf.py -> build\lib.win-amd64-3.4\Bio
copying Bio\DocSQL.py -> build\lib.win-amd64-3.4\Bio
...
running build_ext
building 'Bio.cpairwise2' extension
Traceback (most recent call last):
  File "setup.py", line 478, in <module>
    install_requires=REQUIRES,
  File "C:\Miniconda34-x64\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\Miniconda34-x64\lib\site-packages\wheel\bdist_wheel.py", line 179, in run
    self.run_command('build')
  File "C:\Miniconda34-x64\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\Miniconda34-x64\lib\distutils\command\build.py", line 126, in run
    self.run_command(cmd_name)
  File "C:\Miniconda34-x64\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 206, in run
    build_ext.run(self)
  File "C:\Miniconda34-x64\lib\site-packages\setuptools\command\build_ext.py", line 50, in run
    _build_ext.run(self)
  File "C:\Miniconda34-x64\lib\distutils\command\build_ext.py", line 339, in run
    self.build_extensions()
  File "C:\Miniconda34-x64\lib\distutils\command\build_ext.py", line 448, in build_extensions
    self.build_extension(ext)
  File "C:\Miniconda34-x64\lib\site-packages\setuptools\command\build_ext.py", line 183, in build_extension
    _build_ext.build_extension(self, ext)
  File "C:\Miniconda34-x64\lib\distutils\command\build_ext.py", line 503, in build_extension
    depends=ext.depends)
  File "C:\Miniconda34-x64\lib\distutils\msvc9compiler.py", line 460, in compile
    self.initialize()
  File "C:\Miniconda34-x64\lib\distutils\msvc9compiler.py", line 371, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Miniconda34-x64\lib\site-packages\setuptools\msvc9_support.py", line 52, in query_vcvarsall
    return unpatched['query_vcvarsall'](version, *args, **kwargs)
  File "C:\Miniconda34-x64\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall
    raise ValueError(str(list(result.keys())))
ValueError: ['path']
Command exited with code 1

(Updated to include final two lines which I missed in initial copy-and-paste)

Any thoughts on what might be breaking on this specific platform (64-bit Python 3.4)?

I consider this low priority as most of our Windows users are likely to want a more recent Python.

@native-api
Copy link
Contributor

You forgot to include the error itself:

ValueError: ['path']

@native-api
Copy link
Contributor

Regardless of the error, set DISTUTILS_DEBUG=1 envvar to get more logging that would show what's happening (https://stackoverflow.com/questions/13722706/how-to-get-error-log-of-a-disutils-setup-in-python): a build log isn't worth looking at unless something goes wrong, after all.

@native-api
Copy link
Contributor

native-api commented Apr 6, 2018

The error means that the output of <path_to_vcvarsall.bat> <arch> & set didn't contain the path envvar (case-insensitive). This is very strange indeed.

You need to get this output yourself to find out what is wrong with it. Calling distutils.msvc9compiler.find_vcvarsall(distutils.msvc9compiler.get_build_version()) should give you the <path_to_vcvarsall.bat> and distutils debug output -- the value of <arch>.

@matthew-brett
Copy link
Collaborator

Ah - maybe you need this incantation?

  # Fix MSVC builds for 64-bit Python. See:
  # http://stackoverflow.com/questions/32091593/cannot-install-windows-sdk-7-1-on-windows-10
- echo "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 > "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64/vcvars64.bat"

E.g. : https://github.com/MacPython/nipy-wheels/blob/master/appveyor.yml#L39

@peterjc
Copy link
Contributor Author

peterjc commented Apr 16, 2018

Test using SET DISTUTILS_DEBUG=1 before building the wheel:

https://ci.appveyor.com/project/biopython/biopython-wheels/build/1.0.55

Again this target failed:

https://ci.appveyor.com/project/biopython/biopython-wheels/build/1.0.55/job/qrkc6ua4k63jlptk

Not sure this tells me anything helpful:

SET DISTUTILS_DEBUG=1
python setup.py bdist_wheel
options (after parsing config files):
options (after parsing command line):
option dict for 'aliases' command:
  {}
option dict for 'bdist_wheel' command:
  {}
running bdist_wheel
Distribution.get_command_obj(): creating 'bdist_wheel' command object
Distribution.get_command_obj(): creating 'bdist' command object
Distribution.get_command_obj(): creating 'build' command object
Distribution.get_command_obj(): creating 'build_scripts' command object
running build
running build_py
Distribution.get_command_obj(): creating 'build_py' command object
creating build
creating build\lib.win-amd64-3.4
creating build\lib.win-amd64-3.4\Bio
copying Bio\bgzf.py -> build\lib.win-amd64-3.4\Bio
...
copying Bio\Entrez\DTDs\mathml2-qname-1.mod -> build\lib.win-amd64-3.4\Bio\Entrez\DTDs
running build_ext
Distribution.get_command_obj(): creating 'build_ext' command object
building 'Bio.cpairwise2' extension
Traceback (most recent call last):
  File "setup.py", line 478, in <module>
    install_requires=REQUIRES,
  File "C:\Miniconda34-x64\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\Miniconda34-x64\lib\site-packages\wheel\bdist_wheel.py", line 179, in run
    self.run_command('build')
  File "C:\Miniconda34-x64\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\Miniconda34-x64\lib\distutils\command\build.py", line 126, in run
    self.run_command(cmd_name)
  File "C:\Miniconda34-x64\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Miniconda34-x64\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 206, in run
    build_ext.run(self)
  File "C:\Miniconda34-x64\lib\site-packages\setuptools\command\build_ext.py", line 50, in run
    _build_ext.run(self)
  File "C:\Miniconda34-x64\lib\distutils\command\build_ext.py", line 339, in run
    self.build_extensions()
  File "C:\Miniconda34-x64\lib\distutils\command\build_ext.py", line 448, in build_extensions
    self.build_extension(ext)
  File "C:\Miniconda34-x64\lib\site-packages\setuptools\command\build_ext.py", line 183, in build_extension
    _build_ext.build_extension(self, ext)
  File "C:\Miniconda34-x64\lib\distutils\command\build_ext.py", line 503, in build_extension
    depends=ext.depends)
  File "C:\Miniconda34-x64\lib\distutils\msvc9compiler.py", line 460, in compile
    self.initialize()
  File "C:\Miniconda34-x64\lib\distutils\msvc9compiler.py", line 371, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Miniconda34-x64\lib\site-packages\setuptools\msvc9_support.py", line 52, in query_vcvarsall
    return unpatched['query_vcvarsall'](version, *args, **kwargs)
  File "C:\Miniconda34-x64\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall
    raise ValueError(str(list(result.keys())))
ValueError: ['path']
Command exited with code 1

I'll try Matthew's suggestion next...

@peterjc
Copy link
Contributor Author

peterjc commented Apr 16, 2018

That seems to be what I was missing, well spotted @matthew-brett - thank you!

https://ci.appveyor.com/project/biopython/biopython-wheels/build/1.0.56

Also I note that this seems not to cause any problems with 32bit targets, so does not need wrapping in an if-statement.

@peterjc peterjc closed this as completed Apr 16, 2018
peterjc referenced this issue in biopython/biopython-wheels Apr 16, 2018
This seems to be harmless for the 32bit targets.

Tested on branch, this should resolve
#3

See https://github.com/matthew-brett/multibuild/issues/157
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants