Skip to content

Unhelpful traceback if sdk_dir is None #600

@ghost

Description

In setup.py, the global variable sdk_dir is set on line 310 by find_platform_sdk_dir().

If find_platform_sdk_dir() can't find a Platform SDK it returns None, since os.environ.get("MSSdk") on line 162 returns None.

Later, sdk_dir is used as the first argument to os.path.join on line 604, but this fails with a slightly unhelpful traceback:

Traceback (most recent call last):
File "setup.py", line 1945, in <module>
""" % dirs).split(),
File "setup.py", line 604, in __init__
if os.path.isfile(os.path.join(sdk_dir, "include", "activdbg.h")):
File "H:\external\local_windows_32_vc8\python27\lib\ntpath.py", line 96, in join
assert len(path) > 0
TypeError: object of type 'NoneType' has no len()

A check for "if sdk_dir is None" after line 310 with a relevant error messge would be nice :-)

I'm hitting this problem because I'm building with Visual Studio 2005, whose Platform SDK is at C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK (on a 64bit system, but building the 32bit binaries).

Thanks for all the hard work on this package!

Reported by: stevenwinfield

Original Ticket: pywin32/bugs/600

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions