Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!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; 'exception': 0.03; 'except:': 0.07; 'exception.': 0.07; 'try:': 0.07; 'block.': 0.09; 'exception,': 0.09; 'friday,': 0.09; 'subject:ctypes': 0.09; 'to:addr:comp.lang.python': 0.09; 'useless': 0.09; 'work"': 0.09; 'cc:addr:python-list': 0.10; 'clues': 0.16; 'describing': 0.16; 'dlls': 0.16; 'nesting': 0.16; 'reproduce': 0.16; 'traceback.': 0.16; 'typo': 0.16; 'wrote:': 0.17; 'typing': 0.17; 'load': 0.19; 'trying': 0.21; 'terminate': 0.22; 'posted': 0.22; "i'd": 0.22; 'work.': 0.23; 'statement': 0.23; "i've": 0.23; 'tried': 0.25; 'cc:addr:python.org': 0.25; 'header:In-Reply-To:1': 0.25; 'header :User-Agent:1': 0.26; 'am,': 0.27; 'question': 0.27; 'cc:2**2': 0.27; 'dll': 0.27; 'errors.': 0.27; "doesn't": 0.28; 'this?': 0.28; 'went': 0.28; 'run': 0.28; '"no': 0.29; 'question:': 0.29; 'trigger': 0.29; 'source': 0.29; "i'm": 0.29; 'code': 0.31; 'problem.': 0.32; 'could': 0.32; 'print': 0.32; 'getting': 0.33; "can't": 0.34; 'received:google.com': 0.34; 'doing': 0.35; 'received:209.85': 0.35; 'something': 0.35; 'there': 0.35; 'next': 0.35; 'except': 0.36; 'but': 0.36; '12,': 0.36; 'cc:no real name:2**1': 0.36; "wasn't": 0.36; "i'll": 0.36; 'too': 0.36; 'available.': 0.37; 'october': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'some': 0.38; 'help': 0.40; 'below,': 0.60; 'future.': 0.62; 'more': 0.63; 'show': 0.63; 'clearer': 0.84; 'thoroughly': 0.84; 'sorry.': 0.91; 'angel': 0.93 Newsgroups: comp.lang.python Date: Fri, 12 Oct 2012 10:57:09 -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, d@davea.name, Wanderer 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: 98 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1350064633 news.xs4all.nl 6863 [2001:888:2000:d::a6]:51511 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:31173 On Friday, October 12, 2012 12:29:02 PM UTC-4, Dave Angel wrote: > On 10/12/2012 11:36 AM, 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" > > > > > > > I can't help you find the dll's, because I don't run Windows. But I > > could help you write a clearer question: > > > > "doesn't work" is thoroughly useless for describing errors. If you're > > getting an exception, show us the full traceback. That will show which > > statement got the exception that wasn't caught. Next question is which > > of the dlls is missing. Are you getting an exception because it's > > missing or because of something more fundamental, like nesting exception > > handlers? > > > > Using bare excepts is almost never a good idea. If it "works" you get > > no clues what went wrong. For example, a typo in source code can > > trigger a bare exception, as can a user typing Ctrl-C. So when you're > > using bare excepts, you have robbed the user of any way to terminate the > > program. > > > > If I were you, I'd be writing a loop so there's only one try block. Too > > much duplicated code in the way you're doing it. > > > > > > > > -- > > > > DaveA Sorry. It was a WindowsError, but the code I posted now works for me and I can't reproduce the problem. I'll be more diligent in the future.