Commit 2b226477 authored by Jim Fulton's avatar Jim Fulton

Changed the way we try to find ZServer to take advantage of the known

location of the start.py script (when it is used).
parent b182ce7b
......@@ -83,4 +83,5 @@
#
##############################################################################
import fap # fixup asyncore/cPickle dependencies
import fap
fap.fap() # fixup asyncore/cPickle dependencies
......@@ -90,47 +90,54 @@ localizing the hacks^H^H^H^H^Hchanges here.
"""
import sys
# if we are using an old version of Python, our asyncore is likely to
# be out of date. If ZServer is sitting around, we can get a current
# version of ayncore from it. In any case, if we are going to be used
# with Zope, it's important to use the version from Zope.
try:
def whiff(where):
if not where: return 0
import os, imp
try: m=imp.find_module('ZServer', [where])
except: return 0
else: return 1
def fap(where=''):
# if we are using an old version of Python, our asyncore is likely to
# be out of date. If ZServer is sitting around, we can get a current
# version of ayncore from it. In any case, if we are going to be used
# with Zope, it's important to use the version from Zope.
try:
from ZServer.medusa import asyncore
except:
except:
# Try a little harder to import ZServer
import os, imp
try: m=imp.find_module('ZServer', ['.'])
except:
try: m=imp.find_module('ZServer', [os.path.join('..','..')])
for location in where, '.', os.path.join('..','..'):
if whiff(location):
sys.path.append(location)
try:
from ZServer.medusa import asyncore
except:
import asyncore
else:
sys.path.append(os.path.join('..','..'))
from ZServer.medusa import asyncore
else:
sys.path.append('.')
from ZServer.medusa import asyncore
break
if sys.version[:1] < '2' and asyncore.loop.func_code.co_argcount < 3:
if sys.version[:1] < '2' and asyncore.loop.func_code.co_argcount < 3:
raise ImportError, 'Cannot import an up-to-date asyncore'
sys.modules['ZEO.asyncore']=asyncore
sys.modules['ZEO.asyncore']=asyncore
# We need a recent version of cPickle too.
if sys.version[:3] < '1.6':
# We need a recent version of cPickle too.
if sys.version[:3] < '1.6':
try:
from ZODB import cPickle
sys.modules['ZEO.cPickle']=cPickle
except:
# Try a little harder
import cPickle
else:
else:
import cPickle
import cStringIO
p=cPickle.Pickler(cStringIO.StringIO(),1)
try:
import cStringIO
p=cPickle.Pickler(cStringIO.StringIO(),1)
try:
p.fast=1
except:
except:
raise ImportError, 'Cannot import an up-to-date cPickle'
......@@ -86,7 +86,7 @@
"""Start the server storage.
"""
__version__ = "$Revision: 1.18 $"[11:-2]
__version__ = "$Revision: 1.19 $"[11:-2]
import sys, os, getopt, string
......@@ -207,7 +207,8 @@ def main(argv):
elif o=='-d': detailed=1
elif o=='-s': Z=0
import fap # fixup asyncore/cPickle dependencies
import fap
fap.fap(directory(me, 4)) # fixup asyncore/cPickle dependencies
if port is None and unix is None:
print usage
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment