gurobi: add v9.1.2 and extend python (#25064)
- add version 9.1.2 - set a license file - set the license environment variable - remove the download and license information out of the description so it does not show up in environment modules - extend python and set python version constraints - build gurobipy to be used in any compatible python, used for more extensive computations than the gurobi shell - remove preexisting PYTHONPATH from gurobi.sh as the shell uses a built-in python, which will likely be different from "system" python - add maintainer
This commit is contained in:
parent
be2e224e75
commit
e29168ad02
1 changed files with 27 additions and 10 deletions
|
@ -11,33 +11,50 @@
|
||||||
class Gurobi(Package):
|
class Gurobi(Package):
|
||||||
"""The Gurobi Optimizer was designed from the ground up to be the fastest,
|
"""The Gurobi Optimizer was designed from the ground up to be the fastest,
|
||||||
most powerful solver available for your LP, QP, QCP, and MIP (MILP, MIQP,
|
most powerful solver available for your LP, QP, QCP, and MIP (MILP, MIQP,
|
||||||
and MIQCP) problems.
|
and MIQCP) problems."""
|
||||||
|
|
||||||
Note: Gurobi is licensed software. You will need to create an account on
|
# Note: Gurobi is licensed software. You will need to create an account on
|
||||||
the Gurobi homepage and download Gurobi Optimizer yourself. Spack will
|
# the Gurobi homepage and download Gurobi Optimizer yourself. Spack will
|
||||||
search your current directory for the download file. Alternatively, add
|
# search your current directory for the download file. Alternatively, add
|
||||||
this file to a mirror so that Spack can find it. For instructions on how to
|
# this file to a mirror so that Spack can find it. For instructions on how
|
||||||
set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html
|
# to set up a mirror, see
|
||||||
|
# http://spack.readthedocs.io/en/latest/mirrors.html
|
||||||
Please set the path to licence file with the following command (for bash)
|
|
||||||
export GRB_LICENSE_FILE=/path/to/gurobi/license/. See section 4 in
|
|
||||||
$GUROBI_HOME/docs/quickstart_linux.pdf for more details."""
|
|
||||||
|
|
||||||
homepage = "http://www.gurobi.com/index"
|
homepage = "http://www.gurobi.com/index"
|
||||||
manual_download = True
|
manual_download = True
|
||||||
|
|
||||||
|
maintainers = ['glennpj']
|
||||||
|
|
||||||
|
version('9.1.2', sha256='7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b')
|
||||||
version('7.5.2', '01f6dbb8d165838cca1664a1a14e4a85')
|
version('7.5.2', '01f6dbb8d165838cca1664a1a14e4a85')
|
||||||
|
|
||||||
# Licensing
|
# Licensing
|
||||||
license_required = True
|
license_required = True
|
||||||
|
license_files = ['gurobi.lic']
|
||||||
license_vars = ['GRB_LICENSE_FILE']
|
license_vars = ['GRB_LICENSE_FILE']
|
||||||
license_url = 'http://www.gurobi.com/downloads/download-center'
|
license_url = 'http://www.gurobi.com/downloads/download-center'
|
||||||
|
|
||||||
|
extends('python')
|
||||||
|
depends_on('python@2.7,3.6:')
|
||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
|
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
|
||||||
|
|
||||||
|
def patch(self):
|
||||||
|
# Strip out existing PYTHONPATH as the presence of that will generally
|
||||||
|
# break given that Spack has likely set that for a different Python.
|
||||||
|
gurobi_shell = join_path('linux64', 'bin', 'gurobi.sh')
|
||||||
|
filter_file(r':\$PYTHONPATH', '', gurobi_shell)
|
||||||
|
|
||||||
def setup_run_environment(self, env):
|
def setup_run_environment(self, env):
|
||||||
env.set('GUROBI_HOME', self.prefix)
|
env.set('GUROBI_HOME', self.prefix)
|
||||||
|
env.set('GRB_LICENSE_FILE', join_path(self.prefix, 'gurobi.lic'))
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
install_tree('linux64', prefix)
|
install_tree('linux64', prefix)
|
||||||
|
|
||||||
|
@run_after('install')
|
||||||
|
def gurobipy(self):
|
||||||
|
with working_dir('linux64'):
|
||||||
|
python = which('python')
|
||||||
|
python('setup.py', 'install', '--prefix={0}'.format(self.prefix))
|
||||||
|
|
Loading…
Reference in a new issue