40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/env python 
 | 
						|
 | 
						|
#
 | 
						|
# try to find and import a nearby version of the 'py' package. 
 | 
						|
# otherwise use the system global default 
 | 
						|
# XXX turn this into a developer-only thing? 
 | 
						|
#
 | 
						|
import sys
 | 
						|
import os
 | 
						|
from os.path import dirname as opd, exists, join, basename, abspath
 | 
						|
 | 
						|
def searchpy(current):
 | 
						|
    while 1:
 | 
						|
        last = current
 | 
						|
        initpy = join(current, '__init__.py')
 | 
						|
        if not exists(initpy):
 | 
						|
            pydir = join(current, 'py')
 | 
						|
            # recognize py-package and ensure it is importable
 | 
						|
            if exists(pydir) and exists(join(pydir, '__init__.py')):
 | 
						|
                #for p in sys.path:
 | 
						|
                #    if p == current:
 | 
						|
                #        return True
 | 
						|
                if current != sys.path[0]:  # if we are already first, then ok
 | 
						|
                    print >>sys.stderr, "inserting into sys.path:", current
 | 
						|
                    sys.path.insert(0, current)
 | 
						|
                return True
 | 
						|
        current = opd(current)
 | 
						|
        if last == current:
 | 
						|
            return False
 | 
						|
 | 
						|
if not searchpy(abspath(os.curdir)):
 | 
						|
    if not searchpy(opd(abspath(sys.argv[0]))):
 | 
						|
        if not searchpy(opd(__file__)):
 | 
						|
            pass # let's hope it is just on sys.path 
 | 
						|
 | 
						|
import py
 | 
						|
 | 
						|
if __name__ == '__main__': 
 | 
						|
    print "py lib is at", py.__file__
 |