Path: csiph.com!usenet.pasdenom.info!news.albasani.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'else:': 0.03; 'mrab': 0.05; 'except:': 0.07; 'exception.': 0.07; 'try:': 0.07; 'friday,': 0.09; 'name)': 0.09; 'subject:ctypes': 0.09; 'to:addr:comp.lang.python': 0.09; 'cc:addr:python-list': 0.10; 'oserror:': 0.16; 'wrote:': 0.17; 'load': 0.19; 'trying': 0.21; 'cc:2**0': 0.23; 'work.': 0.23; "i've": 0.23; 'cc:no real name:2**0': 0.24; 'tried': 0.25; 'cc:addr:python.org': 0.25; 'header:In-Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; 'dll': 0.27; "doesn't": 0.28; 'this?': 0.28; '"no': 0.29; "i'm": 0.29; 'code': 0.31; 'print': 0.32; 'received:google.com': 0.34; 'thanks': 0.34; 'too.': 0.35; 'received:209.85': 0.35; 'there': 0.35; 'except': 0.36; 'but': 0.36; '12,': 0.36; 'available.': 0.37; 'october': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'some': 0.38; 'below,': 0.60 Newsgroups: comp.lang.python Date: Fri, 12 Oct 2012 10:52:38 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=65.205.52.2; posting-account=_dIAQQoAAAB7Yieol6fmkK_HviJUbJt3 References: <975da919-c70a-492a-9d49-62254a76eb6c@googlegroups.com> User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-IP: 65.205.52.2 MIME-Version: 1.0 Subject: Re: Checking for dlls in ctypes From: Wanderer To: comp.lang.python@googlegroups.com Content-Type: text/plain; charset=ISO-8859-1 Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Message-ID: Lines: 68 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1350064361 news.xs4all.nl 6963 [2001:888:2000:d::a6]:47281 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:31171 On Friday, October 12, 2012 12:57:06 PM UTC-4, MRAB wrote: > On 2012-10-12 16:36, Wanderer wrote: > > > I'm trying to write some code that will load one of three dll depending on the one available. I've tried the code below, but it doesn't work. The try except doesn't catch the exception. Is there a way to do this? > > > > > > try: > > > self.dll = windll.pvcam64 > > > except: > > > print "No pvcam64" > > > try: > > > self.dll = windll.pvcam32 > > > except: > > > print "No pvcam32" > > > try: > > > self.dll = windll.pvcam > > > except: > > > print "No pvcam" > > > return > > > else: > > > print "installed pvcam" > > > else: > > > print "installed pvcam32" > > > else: > > > print "installed pvcam64" > > > > > This works for me: > > > > for name in ("pvcam64", "pvcam32", "pvcam"): > > try: > > self.dll = getattr(windll, name) > > except OSError: > > print "No " + name > > else: > > print "Installed " + name > > return Yes that works for me, too. Thanks