예제 #1
0
파일: viewer.py 프로젝트: josegutab/scipion
def getVmdEnviron():
    """ Return the proper environ to launch VMD.
    VMD_HOME variable is read from the ~/.config/scipion.conf file.
    """
    environ = Environ(os.environ)
    environ.set("PATH", os.path.join(os.environ["VMD_HOME"], "bin"), position=Environ.BEGIN)
    return environ
예제 #2
0
    def testInitialVolumeSelector(self):
        def _runVolumeSelector(doGpu=False, label=''):

            print label
            volSelectorProt = self.newProtocol(ProtInitialVolumeSelector,
                                               targetResol=28.32,
                                               numberOfIterations=15,
                                               numberOfMpi=3, numberOfThreads=1)

            volSelectorProt.setObjLabel(label)
            volSelectorProt.inputParticles.set(self.protImport.outputParticles)
            volSelectorProt.inputVolumes.set(self.protImportVol.outputVolumes)

            volSelectorProt.doGpu.set(doGpu)

            self.launchProtocol(volSelectorProt)
            return volSelectorProt

        def _checkAsserts(relionProt):
            self.assertIsNotNone(relionProt.outputVolumes, "There was a "
                                                           "problem with "
                                                           "Initial Volume "
                                                           "Selector")

        environ = Environ(os.environ)
        cudaPath = environ.getFirst(('RELION_CUDA_LIB', 'CUDA_LIB'))

        if cudaPath is not None and os.path.exists(cudaPath):
            volSelGpu = _runVolumeSelector(True, "Run Volume Selector GPU")
            _checkAsserts(volSelGpu)
        else:
            volSelNoGPU = _runVolumeSelector(False, "Volume Selector No GPU")
            _checkAsserts(volSelNoGPU)
예제 #3
0
    def getEnviron(cls):
        """ Load the environment variables needed for Imagic.
        IMAGIC_ROOT is set to IMAGIC_HOME MPI-related vars
        are set if IMAGIC_HOME/openmpi path exists
        IMAGIC_BATCH is needed for batch files to work.
        """
        env = Environ(os.environ)
        env.update({
            'IMAGIC_ROOT': cls.getHome(),
            'IMAGIC_BATCH': "1",
        })
        env.set('LD_LIBRARY_PATH', cls.getHome('lib'), env.BEGIN)

        mpidir = cls.getHome('openmpi')

        if os.path.exists(mpidir):
            env.update({
                'MPIHOME': mpidir,
                'MPIBIN': mpidir + '/bin',
                'OPAL_PREFIX': mpidir
            })
            env.set('PATH', mpidir + '/bin', env.BEGIN)

        else:
            print("Warning: IMAGIC_ROOT directory (", cls.getHome(),
                  ") does not contain openmpi folder.\n",
                  "No MPI support will be enabled.")

        return env
예제 #4
0
    def testInitialVolumeSelector(self):
        def _runVolumeSelector(doGpu=False, label=''):

            print label
            volSelectorProt = self.newProtocol(ProtInitialVolumeSelector,
                                               targetResol=28.32,
                                               numberOfIterations=15,
                                               numberOfMpi=3,
                                               numberOfThreads=1)

            volSelectorProt.setObjLabel(label)
            volSelectorProt.inputParticles.set(self.protImport.outputParticles)
            volSelectorProt.inputVolumes.set(self.protImportVol.outputVolumes)

            volSelectorProt.doGpu.set(doGpu)

            self.launchProtocol(volSelectorProt)
            return volSelectorProt

        def _checkAsserts(relionProt):
            self.assertIsNotNone(
                relionProt.outputVolumes, "There was a "
                "problem with "
                "Initial Volume "
                "Selector")

        volSelNoGPU = _runVolumeSelector(False, "Volume Selector No GPU")
        _checkAsserts(volSelNoGPU)

        environ = Environ(os.environ)
        cudaPath = environ.getFirst(('RELION_CUDA_LIB', 'CUDA_LIB'))

        if cudaPath is not None and os.path.exists(cudaPath):
            volSelGpu = _runVolumeSelector(True, "Run Volume Selector GPU")
            _checkAsserts(volSelGpu)
예제 #5
0
    def getEnviron(cls):
        """ Setup the environment variables needed to launch Ethan. """
        environ = Environ(os.environ)

        environ.update({'PATH': Plugin.getHome()}, position=Environ.BEGIN)

        return environ
예제 #6
0
def getChimeraEnviron(): 
    """ Return the proper environ to launch chimera.
    CHIMERA_HOME variable is read from the ~/.config/scipion.conf file.
    """
    environ = Environ(os.environ)
    environ.set('PATH', os.path.join(os.environ['CHIMERA_HOME'], 'bin'),
                position=Environ.BEGIN)
    return environ    
예제 #7
0
def getVmdEnviron():
    """ Return the proper environ to launch VMD.
    VMD_HOME variable is read from the ~/.config/scipion.conf file.
    """
    environ = Environ(os.environ)
    environ.set('PATH', os.path.join(os.environ['VMD_HOME'], 'bin'),
                position=Environ.BEGIN)
    return environ
예제 #8
0
파일: convert.py 프로젝트: I2PC/scipion
def getCudaLib(environ=None, useMC2=False):

    if environ is None:
        environ = Environ(os.environ)
    if useMC2:
        return environ.getFirst((MOTIONCOR2_CUDA_LIB, CUDA_LIB))
    else:
        return environ.getFirst((MOTIONCORR_CUDA_LIB, CUDA_LIB))
예제 #9
0
def getCudaLib(environ=None, useMC2=False):

    if environ is None:
        environ = Environ(os.environ)
    if useMC2:
        return environ.getFirst((MOTIONCOR2_CUDA_LIB, CUDA_LIB))
    else:
        return environ.getFirst((MOTIONCORR_CUDA_LIB, CUDA_LIB))
예제 #10
0
파일: xmipp3.py 프로젝트: josegutab/scipion
def getEnviron(xmippFirst=True):
    """ Create the needed environment for Xmipp programs. """
    environ = Environ(os.environ)
    pos = Environ.BEGIN if xmippFirst else Environ.END
    environ.update(
        {"PATH": join(os.environ["XMIPP_HOME"], "bin"), "LD_LIBRARY_PATH": join(os.environ["XMIPP_HOME"], "lib")},
        position=pos,
    )
    return environ
예제 #11
0
def getEnviron(xmippFirst=True):
    """ Create the needed environment for Bsoft programs. """
    environ = Environ(os.environ)
    pos = Environ.BEGIN if xmippFirst else Environ.END
    environ.update({
            'PATH': os.path.join(os.environ['BSOFT_HOME'], 'bin'),
            #'LD_LIBRARY_PATH': join(os.environ['BSOFT_HOME'], 'lib')
            }, position=pos)
    return environ
예제 #12
0
def getEnviron(xmippFirst=True):
    """ Create the needed environment for Xmipp programs. """
    environ = Environ(os.environ)
    pos = Environ.BEGIN if xmippFirst else Environ.END
    environ.update({
            'PATH': join(os.environ['XMIPP_HOME'], 'bin'),
            'LD_LIBRARY_PATH': join(os.environ['XMIPP_HOME'], 'lib')
            }, position=pos)
    return environ
예제 #13
0
def getEnviron():
    """ Setup the environment variables needed to launch Relion. """
    environ = Environ(os.environ)
    environ.update({
            'PATH': join(os.environ['RELION_HOME'], 'bin'),
            'LD_LIBRARY_PATH': join(os.environ['RELION_HOME'], 'lib') + ":" + join(os.environ['RELION_HOME'], 'lib64'),
            'SCIPION_MPI_FLAGS': os.environ.get('RELION_MPI_FLAGS', ''),
            }, position=Environ.BEGIN)
    return environ
예제 #14
0
 def getEnviron(cls):
     """ Setup the environment variables needed to launch localrec. """
     environ = Environ(os.environ)
     environ.update(
         {
             'PATH': getXmippPath('bin'),
             'LD_LIBRARY_PATH': getXmippPath('lib')
         },
         position=Environ.BEGIN)
     return environ
예제 #15
0
    def getEnviron(cls):
        environ = Environ(os.environ)
        environ.update(
            {
                'PATH': cls.getHome('bin'),
                'LD_LIBRARY_PATH': cls.getHome('lib')
            },
            position=Environ.BEGIN)

        return environ
예제 #16
0
    def getEnviron(cls):
        """ Setup the environment variables needed to launch 3DFSC. """
        environ = Environ(os.environ)
        if 'PYTHONPATH' in environ:
            # this is required for python virtual env to work
            del environ['PYTHONPATH']
        environ.update({'PATH': cls.getHome('ThreeDFSC')},
                       position=Environ.BEGIN)

        return environ
예제 #17
0
    def getEnviron(cls):
        """ Setup the environment variables needed to launch Appion. """
        environ = Environ(os.environ)

        environ.update({
            'PATH': Plugin.getHome(),
            'LD_LIBRARY_PATH': str.join(cls.getHome(), 'appionlib')
                               + ":" + cls.getHome(),
        }, position=Environ.BEGIN)

        return environ
예제 #18
0
def getEnviron():
    """ Return the envirion settings to run dosefgpu programs. """
    """ Setup the environment variables needed to launch Relion. """
    MOTIONCORR_HOME = os.environ.get('MOTIONCORR_HOME', 
                                     join(os.environ['EM_ROOT'], 'motioncorr'))
    environ = Environ(os.environ)
    environ.update({
            'PATH': join(MOTIONCORR_HOME, 'bin'),
            'LD_LIBRARY_PATH': join(os.environ.get('MOTIONCORR_CUDA_LIB', ''))                                    
            }, position=Environ.BEGIN)
    return environ  
예제 #19
0
파일: convert.py 프로젝트: coocoky/scipion
def getEnviron():
    """ Setup the environment variables needed to launch Appion. """
    environ = Environ(os.environ)
    if 'DOGPICKER_HOME' in environ:
        environ.update({
                'PATH': os.environ['DOGPICKER_HOME'],
                'LD_LIBRARY_PATH': join(os.environ['DOGPICKER_HOME'], 'appionlib') + ":" + os.environ['DOGPICKER_HOME'],
                }, position=Environ.BEGIN)
    else:
        #TODO: Find a generic way to warn of this situation
        print "DOGPICKER_HOME variable not set on environment."
    return environ
예제 #20
0
def getEnviron():
    """ Create the needed environment for Xmipp programs. """
    environ = Environ(os.environ)
    SIMPLEBIN = os.path.join(os.environ['SIMPLE_HOME'], 'bin')
    environ.update({
                    'SIMPLEBIN': SIMPLEBIN,
                    'SIMPLEPATH': os.environ['SIMPLE_HOME'],
                    'SIMPLESYS': os.environ['SIMPLE_HOME'],
                    'PATH': SIMPLEBIN + os.pathsep + os.path.join(os.environ['SIMPLE_HOME'], 'apps')
                    }, 
                   position=Environ.BEGIN)
    return environ
예제 #21
0
def getEnviron():
    """ Return the envirion settings to run dosefgpu programs. """
    """ Setup the environment variables needed to launch Relion. """
    MOTIONCORR_HOME = os.environ.get('MOTIONCORR_HOME',
                                     join(os.environ['EM_ROOT'], 'motioncorr'))
    environ = Environ(os.environ)
    environ.update(
        {
            'PATH': join(MOTIONCORR_HOME, 'bin'),
            'LD_LIBRARY_PATH': join(os.environ.get('MOTIONCORR_CUDA_LIB', ''))
        },
        position=Environ.BEGIN)
    return environ
예제 #22
0
def getEnviron():
    """ Setup the environment variables needed to launch Eman. """
    environ = Environ(os.environ)
    EMAN2DIR = os.environ['EMAN2DIR']
    pathList = [os.path.join(EMAN2DIR, d) for d in ['lib', 'bin', 'extlib/site-packages']]
    
    environ.update({
            'PATH': join(EMAN2DIR, 'bin'),
            'LD_LIBRARY_PATH': os.pathsep.join(pathList),
            'PYTHONPATH': os.pathsep.join(pathList),
            'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python')
            }, position=Environ.REPLACE)
    return environ
예제 #23
0
    def getEnviron(cls, bsoftVersion=None):
        """ Setup the environment variables needed to launch bsoft.
        :param bsoftVersion (optional) pass a version to be used,
        otherwise will choose default value for BSOFT_HOME"""
        environ = Environ(os.environ)

        home = cls.getHomeFromVersion(bsoftVersion)

        environ.update({
            'PATH': os.path.join(home, 'bin'),
            'BSOFT': home
        }, position=Environ.BEGIN)
        return environ
예제 #24
0
def getEnviron():
    """ Load the environment variables needed for Spider.
    If SPIDER_DIR is defined, the bin, man and proc folders will be 
    defined from it. If not, each of them should be defined separately. 
    """
    global SPIDER
    env = Environ(os.environ)
    SPIDER_DIR = env.getFirst(('SPIDER_HOME', 'SPIDER_DIR'), mandatory=True)  #
    # Scipion
    # definition

    if SPIDER_DIR is None:
        errors = ''
        for var in ['SPBIN_DIR', 'SPMAN_DIR', 'SPPROC_DIR']:
            if not var in env:
                errors += "\n   Missing SPIDER variable: '%s'" % var
        if len(errors):
            print "ERRORS: " + errors
    else:
        env.update({
            'SPBIN_DIR': join(SPIDER_DIR, 'bin') +
            '/',  # Spider needs this extra slash at the end
            'SPMAN_DIR': join(SPIDER_DIR, 'man') + '/',
            'SPPROC_DIR': join(SPIDER_DIR, 'proc') + '/'
        })

    # Get the executable or 'spider' by default
    SPIDER = join(env['SPBIN_DIR'], env.get('SPIDER',
                                            'spider_linux_mp_intel64'))
    # expand ~ and vars
    SPIDER = abspath(os.path.expanduser(os.path.expandvars(SPIDER)))

    env.set('PATH', env['SPBIN_DIR'], env.END)

    return env
예제 #25
0
def getEnviron():
    """ Setup the environment variables needed to launch Relion. """
    environ = Environ(os.environ)
    environ.update(
        {
            'PATH':
            join(os.environ['RELION_HOME'], 'bin'),
            'LD_LIBRARY_PATH':
            join(os.environ['RELION_HOME'], 'lib') + ":" +
            join(os.environ['RELION_HOME'], 'lib64'),
            'SCIPION_MPI_FLAGS':
            os.environ.get('RELION_MPI_FLAGS', ''),
        },
        position=Environ.BEGIN)
    return environ
예제 #26
0
파일: convert.py 프로젝트: I2PC/scipion
def getRelionEnviron():
    """ Setup the environment variables needed to launch Relion. """
    environ = Environ(os.environ)
    
    relionHome = os.environ[LOCALREC_RELION_HOME]
    binPath = join(relionHome, 'bin')
    libPath = join(relionHome, 'lib') + ":" + join(relionHome, 'lib64')
    
    if not binPath in environ['PATH']:
        environ.update({'PATH': binPath,
                        'LD_LIBRARY_PATH': libPath,
                        'SCIPION_MPI_FLAGS': os.environ.get(
                            'RELION_MPI_FLAGS', ''),
                        }, position=Environ.BEGIN)
    return environ
예제 #27
0
 def getEnviron(cls):
     """ Setup the environment variables needed to launch localrec. """
     environ = Environ(os.environ)
     print("getEnvirion(): %s" % os.environ.get(cls.getHome()))
     if ('%s' % cls.getHome()) in environ:
         environ.update(
             {
                 'PATH': cls.getHome(),
                 'LD_LIBRARY_PATH': os.environ[cls.getHome()],
             },
             position=Environ.BEGIN)
     else:
         # TODO: Find a generic way to warn of this situation
         print("%s variable not set on environment." % cls.getHome())
     return environ
예제 #28
0
    def getEnviron(cls):
        """ Setup the environment variables needed to launch pyseg. """
        environ = Environ(os.environ)
        pySegDir = cls.getHome()

        # Add required disperse path to PATH and pyto path to PYTHONPATH
        environ.update({
            'PATH':
            join(pySegDir, '%s_build' % DISPERSE, 'bin'),
            'PYTHONPATH':
            join(pySegDir,
                 'pyseg_system-%s' % DEFAULT_VERSION.replace('v', ''), 'code')
        })

        return environ
예제 #29
0
 def getEnviron(cls):
     """ Setup the environment variables needed to launch aitom. """
     environ = Environ(os.environ)
     if 'PYTHONPATH' in environ:
         # this is required for python virtual env to work
         del environ['PYTHONPATH']
     return environ
예제 #30
0
    def getMembSegEnviron(cls):
        """ Setup the environment variables needed to launch pyseg. """
        environ = Environ(os.environ)
        runtimePath = cls.getMCRPath()

        # Add required disperse path to PATH and pyto path to PYTHONPATH
        environ.update({
            'LD_LIBRARY_PATH':
            os.pathsep.join([
                join(runtimePath, 'runtime', 'glnxa64'),
                join(runtimePath, 'bin', 'glnxa64'),
                join(runtimePath, 'sys', 'os', 'glnxa64'),
                join(runtimePath, 'sys', 'opengl', 'lib', 'glnxa64')
            ])
        })
        return environ
예제 #31
0
def getRelionEnviron():
    """ Setup the environment variables needed to launch Relion. """
    environ = Environ(os.environ)

    relionHome = os.environ[LOCALREC_RELION_HOME]
    binPath = join(relionHome, 'bin')
    libPath = join(relionHome, 'lib') + ":" + join(relionHome, 'lib64')

    if not binPath in environ['PATH']:
        environ.update(
            {
                'PATH': binPath,
                'LD_LIBRARY_PATH': libPath,
                'SCIPION_MPI_FLAGS': os.environ.get('RELION_MPI_FLAGS', ''),
            },
            position=Environ.BEGIN)
    return environ
예제 #32
0
def getEnviron():
    """ Setup the environment variables needed to launch Appion. """
    environ = Environ(os.environ)
    if 'DOGPICKER_HOME' in environ:
        environ.update(
            {
                'PATH':
                os.environ['DOGPICKER_HOME'],
                'LD_LIBRARY_PATH':
                join(os.environ['DOGPICKER_HOME'], 'appionlib') + ":" +
                os.environ['DOGPICKER_HOME'],
            },
            position=Environ.BEGIN)
    else:
        #TODO: Find a generic way to warn of this situation
        print "DOGPICKER_HOME variable not set on environment."
    return environ
예제 #33
0
파일: spider.py 프로젝트: I2PC/scipion
def getEnviron():
    """ Load the environment variables needed for Spider.
    If SPIDER_DIR is defined, the bin, man and proc folders will be 
    defined from it. If not, each of them should be defined separately. 
    """
    global SPIDER
    env = Environ(os.environ)
    SPIDER_PATH = env.getFirst((SPIDER_HOME, SPIDER_DIR), mandatory=True)  #
    # Scipion
    # definition

    # env.setInstalled(os.path.exists(SPIDER_DIR))

    if SPIDER_PATH is None:
        errors = ''
        for var in [SPBIN_DIR, SPMAN_DIR, SPPROC_DIR]:
            if not var in env:
                errors += "\n   Missing SPIDER variable: '%s'" % var
        if len(errors):
            print "ERRORS: " + errors
    else: 
        env.update({SPBIN_DIR: join(SPIDER_PATH, 'bin') + '/', # Spider needs this extra slash at the end
                    SPMAN_DIR: join(SPIDER_PATH, 'man') + '/',
                    SPPROC_DIR: join(SPIDER_PATH, 'proc') + '/'
                    })
    
    # Get the executable or 'spider' by default
    SPIDER = join(env[SPBIN_DIR], env.get('SPIDER', 'spider_linux_mp_intel64'))
    # expand ~ and vars
    SPIDER = abspath(os.path.expanduser(os.path.expandvars(SPIDER)))
        
    env.set('PATH', env[SPBIN_DIR], env.END)
    
    return env
예제 #34
0
def getEnviron():
    """ Setup the environment variables needed to launch Eman. """
    environ = Environ(os.environ)
    EMAN2DIR = os.environ['EMAN2DIR']
    pathList = [os.path.join(EMAN2DIR, d)
                for d in ['lib', 'bin', 'extlib/site-packages']]

    # This environment variable is used to setup OpenGL (Mesa)
    # library in remote desktops
    if 'REMOTE_MESA_LIB' in os.environ:
        pathList.append(os.environ['REMOTE_MESA_LIB'])

    environ.update({
            'PATH': join(EMAN2DIR, 'bin'),
            'PYTHONPATH': os.pathsep.join(pathList),
            'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python')
            }, position=Environ.REPLACE)
    return environ
예제 #35
0
def getEnviron():
    """ Setup the environment variables needed to launch Eman. """
    environ = Environ(os.environ)
    EMAN2DIR = os.environ['EMAN2DIR']
    pathList = [os.path.join(EMAN2DIR, d)
                for d in ['lib', 'bin', 'extlib/site-packages']]

    # This environment variable is used to setup OpenGL (Mesa)
    # library in remote desktops
    if 'REMOTE_MESA_LIB' in os.environ:
        pathList.append(os.environ['REMOTE_MESA_LIB'])

    environ.update({
            'PATH': join(EMAN2DIR, 'bin'),
            'LD_LIBRARY_PATH': os.pathsep.join(pathList),
            'PYTHONPATH': os.pathsep.join(pathList),
            'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python')
            }, position=Environ.REPLACE)
    return environ
예제 #36
0
    def getEnviron(cls):
        """ Setup the environment variables needed to launch pkdp """
        environ = Environ(os.environ)

        # environ.update({
        #     'PATH': Plugin.getHome(),
        #     'LD_LIBRARY_PATH': str.join(cls.getHome(), 'pkdplib')
        #                        + ":" + cls.getHome(),
        # }, position=Environ.BEGIN)

        return environ
예제 #37
0
def setEmanEnviron():
    """ Setup the environment variables needed to launch Eman and 
        use its modules.
    """
    env = Environ(os.environ)
    pathList = [
        os.path.join(EMAN2DIR, d)
        for d in ['lib', 'bin', 'extlib/site-packages']
    ]

    env.update(
        {
            'PATH': os.path.join(EMAN2DIR, 'bin'),
            'LD_LIBRARY_PATH': os.pathsep.join(pathList),
            'PYTHONPATH': os.pathsep.join(pathList),
            'EMAN_PYTHON': os.path.join(EMAN2DIR, 'Python/bin/python')
        },
        position=Environ.BEGIN)

    os.environ.update(env)
예제 #38
0
    def getEnviron(cls):
        """ Setup the environment variables needed to launch Relion. """
        environ = Environ(os.environ)
        binPath = os.pathsep.join([cls.getHome('bin'), Config.MPI_BINDIR])
        libPath = os.pathsep.join([cls.getHome('lib'), cls.getHome('lib64'), pwem.Config.MPI_LIBDIR])

        if binPath not in environ['PATH']:
            environ.update({'PATH': binPath,
                            'LD_LIBRARY_PATH': libPath
                            }, position=Environ.BEGIN)

        # Get Relion CUDA library path if defined
        cudaLib = cls.getVar(RELIONTOMO_CUDA_LIB, pwem.Config.CUDA_LIB)
        environ.addLibrary(cudaLib)

        if 'RELION_MPI_LIB' in os.environ:
            environ.addLibrary(os.environ['RELION_MPI_LIB'])

        if 'RELION_MPI_BIN' in os.environ:
            environ.set('PATH', os.environ['RELION_MPI_BIN'],
                        position=Environ.BEGIN)
        return environ
예제 #39
0
    def getEnviron(cls, gpuId='0'):
        """ Setup the environment variables needed to launch cryocare. """
        environ = Environ(os.environ)
        if 'PYTHONPATH' in environ:
            # this is required for python virtual env to work
            del environ['PYTHONPATH']

        environ.update({'CUDA_VISIBLE_DEVICES': gpuId})

        cudaLib = environ.get(CRYOCARE_CUDA_LIB, pwem.Config.CUDA_LIB)
        environ.addLibrary(cudaLib)
        return environ
예제 #40
0
def getEnviron(useMC2=False):
    """ Return the environ settings to run motioncorr programs. """
    environ = Environ(os.environ)

    if exists(MOTIONCORR_PATH) and not useMC2:
        environ.update({'PATH': join(os.environ['MOTIONCORR_HOME'], 'bin')},
                       position=Environ.BEGIN)

    if exists(MOTIONCOR2_PATH):
        environ.update({'PATH': join(os.environ['MOTIONCOR2_HOME'], 'bin')},
                       position=Environ.BEGIN)
    
    cudaLib = getCudaLib(environ, useMC2)
    environ.addLibrary(cudaLib)

    return environ
예제 #41
0
파일: test_object.py 프로젝트: I2PC/scipion
 def test_Environ(self):
     """ Test the Environ class with its utilities. """
     from pyworkflow.utils import Environ
     env = Environ({'PATH': '/usr/bin:/usr/local/bin',
                    'LD_LIBRARY_PATH': '/usr/lib:/usr/lib64'
                    })
     env1 = Environ(env)
     env1.set('PATH', '/usr/local/xmipp')
     self.assertEqual(env1['PATH'],'/usr/local/xmipp')
     self.assertEqual(env1['LD_LIBRARY_PATH'], env['LD_LIBRARY_PATH'])
     
     env2 = Environ(env)
     env2.set('PATH', '/usr/local/xmipp', position=Environ.BEGIN)
     self.assertEqual(env2['PATH'],'/usr/local/xmipp' + os.pathsep + env['PATH'])
     self.assertEqual(env2['LD_LIBRARY_PATH'], env['LD_LIBRARY_PATH'])
     
     env3 = Environ(env)
     env3.update({'PATH': '/usr/local/xmipp', 
                  'LD_LIBRARY_PATH': '/usr/local/xmipp/lib'},
                 position=Environ.END)
     self.assertEqual(env3['PATH'],env['PATH'] + os.pathsep +  '/usr/local/xmipp')
     self.assertEqual(env3['LD_LIBRARY_PATH'],env['LD_LIBRARY_PATH'] + os.pathsep +  '/usr/local/xmipp/lib')      
예제 #42
0
def getChimeraEnviron(): 
    """ Return the proper environ to launch chimera.
    CHIMERA_HOME variable is read from the ~/.config/scipion.conf file.
    """
    environ = Environ(os.environ)
    environ.set('PATH', os.path.join(os.environ['CHIMERA_HOME'], 'bin'),
                position=Environ.BEGIN)

    if "REMOTE_MESA_LIB" in os.environ:
        environ.set('LD_LIBRARY_PATH', os.environ['REMOTE_MESA_LIB'],
                    position=Environ.BEGIN)
    return environ    
예제 #43
0
파일: convert.py 프로젝트: I2PC/scipion
def getEnviron(useMC2=False):
    """ Return the environ settings to run motioncorr programs. """
    environ = Environ(os.environ)

    if exists(MOTIONCORR_PATH) and not useMC2:
        environ.update({'PATH': join(os.environ['MOTIONCORR_HOME'], 'bin')},
                       position=Environ.BEGIN)

    if exists(MOTIONCOR2_PATH):
        environ.update({'PATH': join(os.environ['MOTIONCOR2_HOME'], 'bin')},
                       position=Environ.BEGIN)
    
    cudaLib = getCudaLib(environ, useMC2)
    environ.addLibrary(cudaLib)

    return environ
예제 #44
0
def getEnviron():
    """ Setup the environment variables needed to launch Relion. """
    
    environ = Environ(os.environ)

    relionHome = os.environ[RELION_HOME]
    
    binPath = join(relionHome, 'bin')
    libPath = join(relionHome, 'lib') + ":" + join(relionHome, 'lib64')
    
    if not binPath in environ['PATH']:
        environ.update({'PATH': binPath,
                        'LD_LIBRARY_PATH': libPath,
                        'SCIPION_MPI_FLAGS': os.environ.get('RELION_MPI_FLAGS', ''),
                        }, position=Environ.BEGIN)
    
    # Take Scipion CUDA library path
    cudaLib = environ.getFirst(('RELION_CUDA_LIB', 'CUDA_LIB'))
    environ.addLibrary(cudaLib)

    return environ
예제 #45
0
파일: imagic.py 프로젝트: I2PC/scipion
def getImagicHomeDir():
    env = Environ(os.environ)
    imagicdir = env.getFirst((IMAGIC_HOME, IMAGIC_DIR), mandatory=True)  #
    # Scipion
    # definition
    return env, imagicdir