Thanks, it is now working properly. It turned out to be something in the __all__ list that didn'tmake much sense, but now that I know what to use it is working.
On 10/6/11, Steven D'Aprano <st...@pearwood.info> wrote: > Alex Hall wrote: >> Hi all, >> I have managed to get a couple of packages in site-packages which >> share names with some folders in the same directory as a program, or >> at least a subdir somewhere below has the same name. Is there a way to >> force my script to look in lib/site-packages before the script's >> folder? I can't rename these folders since Git will get confused if I >> do. >> In other words, I have a package called LRSignature installed, but in >> a subdir of my script's directory is another LRSignature folder which >> is not an actual Python package. Python sees this non-package folder > > It shouldn't. Python doesn't look into nested folders unless you > explicitly add them to the search path. Here's an example: > > > [steve@sylar ~]$ mkdir math > [steve@sylar ~]$ echo "print('spam')" > math/module.py > [steve@sylar ~]$ python > Python 2.5 (r25:51908, Nov 6 2007, 16:54:01) > [GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> import math # Can we still see the standard math module? > >>> math.sin(1) > 0.8414709848078965 > >>> import module # How about the other module? > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > ImportError: No module named module > > > So as you can see, the math subdirectory and its content is ignored by > Python because it isn't explicitly part of the search path. So I don't > understand why you are seeing this problem unless you are cd'ing into > the LRSignature folder first. > > >> first and so, quite rightly, throws an exception that the class of the >> package I want, LRSignature.Sign, does not exist. It exists in the >> site-packages copy, but Python won't overlook the nearer copy. How do >> I make it do this? Thanks. > > > The *right* solution is to fix the name clash, which may or may not > involve changing the name of something. But I can't tell what, since I > don't understand why you are having this problem. > > But if you can't fix the problem, you can cover it up by manipulating > the import search path. It is exposed as sys.path, and it is just a list > of places to look in the specific order given. > > > > > -- > Steven > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > -- Have a great day, Alex (msg sent from GMail website) mehg...@gmail.com; http://www.facebook.com/mehgcap _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor