[pypy-svn] r14706 - pypy/dist/pypy/translator

pedronis at codespeak.net pedronis at codespeak.net
Fri Jul 15 21:02:02 CEST 2005


Author: pedronis
Date: Fri Jul 15 21:02:01 2005
New Revision: 14706

Modified:
   pypy/dist/pypy/translator/geninterplevel.py
Log:
fix logic to retrieve lib for app-level helpers imports such that it works with translate_pypy import redirection setup.



Modified: pypy/dist/pypy/translator/geninterplevel.py
==============================================================================
--- pypy/dist/pypy/translator/geninterplevel.py	(original)
+++ pypy/dist/pypy/translator/geninterplevel.py	Fri Jul 15 21:02:01 2005
@@ -78,7 +78,7 @@
 import pypy # __path__
 import py.path
 
-GI_VERSION = '1.1.2'  # bump this for substantial changes
+GI_VERSION = '1.1.3'  # bump this for substantial changes
 # ____________________________________________________________
 
 def eval_helper(self, typename, expr):
@@ -422,9 +422,14 @@
             self.initcode.append1('import pypy')
             self.initcode.append1('import sys')
             self.initcode.append1('import os')
-            self.initcode.append1('libdir = os.path.join(pypy.__path__[0], "lib")\n'
-                                  'sys.path.insert(0, libdir)\n'
-                                  'try:\n'
+            self.initcode.append1('for pkgdir in pypy.__path__:\n'
+                                  '    libdir = os.path.join(pkgdir, "lib")\n'
+                                  '    if os.path.isdir(libdir):\n'
+                                  '        break\n'
+                                  'else:\n'
+                                  '    raise Exception, "cannot find pypy/lib directory"\n'
+                                  'sys.path.insert(0, libdir)\n')
+            self.initcode.append1('try:\n'
                                   '    import %s as _tmp\n'
                                   'finally:\n'
                                   '    if libdir in sys.path:\n'
@@ -1323,7 +1328,12 @@
         dic['__file__'] = filename
 
     # XXX allow the app-level code to contain e.g. "import _formatting"
-    libdir = os.path.join(pypy.__path__[0], "lib")
+    for pkgdir in pypy.__path__:
+        libdir = os.path.join(pkgdir, "lib")
+        if os.path.isdir(libdir):
+            break
+    else:
+        raise Exception, "cannot find pypy/lib directory"
     sys.path.insert(0, libdir)
     try:
         exec code in dic



More information about the Pypy-commit mailing list