snopt / snopt-python

MIT License
42 stars 13 forks source link

Cannot run examples #11

Closed GrauleM closed 5 years ago

GrauleM commented 5 years ago

I am struggling getting the examples to run on Ubuntu 16.04 (see below), and would highly appreciate your help. I copied all the info I could think of below. I'm on the snopt-only branch (may be related to https://github.com/snopt/snopt-python/issues/5 ).

Also, what are the exact requirements for snopt-python?


error when running example as sudo:

mo@xx:/usr/local/snopt-python/examples$ sudo python dieta.py 

Traceback (most recent call last):
  File "dieta.py", line 7, in <module>
    from   optimize import snopta, SNOPT_options
  File "/usr/local/lib/python2.7/dist-packages/optimize/__init__.py", line 6, in <module>
    from .solvers  import(
  File "/usr/local/lib/python2.7/dist-packages/optimize/solvers/__init__.py", line 6, in <module>
    from .snopt    import snopta, snoptb, snoptc, sqopt
  File "/usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt/__init__.py", line 4, in <module>
    from .snopt import snopta, snoptb, snoptc, sqopt
  File "/usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt/snopt.py", line 4, in <module>
    from   optimize.solvers          import snopt7_python as fsnopt
ImportError: libsnopt7.so: cannot open shared object file: No such file or directory

error when running example without sudo:

mo@xx:/usr/local/snopt-python/examples$ python dieta.py 

Traceback (most recent call last):
  File "dieta.py", line 7, in <module>
    from   optimize import snopta, SNOPT_options
  File "/usr/local/lib/python2.7/dist-packages/optimize/__init__.py", line 6, in <module>
    from .solvers  import(
  File "/usr/local/lib/python2.7/dist-packages/optimize/solvers/__init__.py", line 6, in <module>
    from .snopt    import snopta, snoptb, snoptc, sqopt
  File "/usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt/__init__.py", line 4, in <module>
    from .snopt import snopta, snoptb, snoptc, sqopt
  File "/usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt/snopt.py", line 4, in <module>
    from   optimize.solvers          import snopt7_python as fsnopt
ImportError: libgfortran.so.4: cannot open shared object file: No such file or directory

I believe I defined the environment variables according to your instructions:

mo@xx:/$ echo "$LD_LIBRARY_PATH" "$SNOPT7LIB" "$SNOPT_LICENSE"

/usr/local/lib/ /usr/local/lib /home/mo/Desktop/snopt7.lic

the lib folder contains:

mo@xx:/usr/local/lib$ ls

libf2c  
libf2c.a  
libsnopt7.so  
libsnopt.a  
libsnopt_c.a  
libsnopt_cpp.a  
libsnopt_c.so  
libsnopt_c.so.7  
libsnopt_c.so.7.2.12  
pkgconfig  
python2.7  
python3.5  
snopt  
snopt-python

below is the output from building snopt-python

mo@xx:/usr/local/snopt-python$ python setup.py build

Appending optimize.solvers configuration to optimize
Ignoring attempt to set 'name' (from 'optimize' to 'optimize.solvers')
Appending optimize.solvers/snopt configuration to optimize
Ignoring attempt to set 'name' (from 'optimize' to 'optimize.solvers/snopt')
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "optimize.solvers.snopt7_python" sources
creating build
creating build/src.linux-x86_64-2.7
creating build/src.linux-x86_64-2.7/solvers
creating build/src.linux-x86_64-2.7/solvers/f2py
f2py options: []
f2py: solvers/f2py/snopt7_python.pyf
Reading fortran codes...
    Reading file 'solvers/f2py/snopt7_python.pyf' (format:free)
Post-processing...
    Block: __user__routines
            Block: qphx
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
            Block: usrfunc
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
            Block: funcon
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
            Block: funobj
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
            Block: usrfun
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
    Block: snopt7_python
            Block: copyoptions
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: sninit_wrap
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snspec_wrap
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snmema_wrap
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snmem_wrap
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snjac_wrap
In: solvers/f2py/snopt7_python.pyf:snopt7_python:unknown_interface:snjac_wrap
get_useparameters: no module __user__routines info used by snjac_wrap
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snopta_wrap
In: solvers/f2py/snopt7_python.pyf:snopt7_python:unknown_interface:snopta_wrap
get_useparameters: no module __user__routines info used by snopta_wrap
analyzevars: character array "character*8 xnames(nxname)" is considered as "character xnames(nxname,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 fnames(nfname)" is considered as "character fnames(nfname,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snoptb_wrap
In: solvers/f2py/snopt7_python.pyf:snopt7_python:unknown_interface:snoptb_wrap
get_useparameters: no module __user__routines info used by snoptb_wrap
analyzevars: character array "character*8 names(nnames)" is considered as "character names(nnames,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snoptc_wrap
In: solvers/f2py/snopt7_python.pyf:snopt7_python:unknown_interface:snoptc_wrap
get_useparameters: no module __user__routines info used by snoptc_wrap
analyzevars: character array "character*8 names(nnames)" is considered as "character names(nnames,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: sqinit_wrap
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: sqspec_wrap
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: sqopt_wrap
In: solvers/f2py/snopt7_python.pyf:snopt7_python:unknown_interface:sqopt_wrap
get_useparameters: no module __user__routines info used by sqopt_wrap
analyzevars: character array "character*8 names(nnames)" is considered as "character names(nnames,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cu(lencu)" is considered as "character cu(lencu,8)"; "intent(c)" is forced.
analyzevars: character array "character*8 cw(lencw)" is considered as "character cw(lencw,8)"; "intent(c)" is forced.
            Block: snend
Post-processing (stage 2)...
Building modules...
    Constructing call-back function "cb_qphx_in___user__routines"
      def qphx(x,hx,nstate,cu,iu,ru,[nnh,lencu,leniu,lenru]): return hx
    Constructing call-back function "cb_usrfunc_in___user__routines"
      def usrfunc(mode,nnjac,x,fobj,gobj,fcon,gcon,statususer,cu,iu,ru,[nnobj,nncon,nnl,nejac,lencu,leniu,lenru]): return mode,fobj,gobj,fcon,gcon
    Constructing call-back function "cb_funcon_in___user__routines"
      def funcon(modec,x,fcon,gcon,statususer,cu,iu,ru,[nncon,nnjac,negcon,lencu,leniu,lenru]): return modec,fcon,gcon
    Constructing call-back function "cb_funobj_in___user__routines"
      def funobj(modef,x,fobj,gobj,statususer,cu,iu,ru,[nnobju,lencu,leniu,lenru]): return modef,fobj,gobj
    Constructing call-back function "cb_usrfun_in___user__routines"
      def usrfun(status,x,needf,f,needg,g,cu,iu,ru,[n,nf,leng,lencu,leniu,lenru]): return status,f,g
    Building module "snopt7_python"...
        Constructing wrapper function "copyoptions"...
          errors = copyoptions(option,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "sninit_wrap"...
          sninit_wrap(prtfile,prtlen,summon,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "snspec_wrap"...
          info = snspec_wrap(spcfile,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "snmema_wrap"...
          info,mincw,miniw,minrw = snmema_wrap(nf,n,nxname,nfname,nea,neg,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "snmem_wrap"...
          info,mincw,miniw,minrw = snmem_wrap(m,n,ne,neg,nncon,nnjac,nnobj,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "snjac_wrap"...
          info,iafun,javar,nea,a,igfun,jgvar,neg,mincw,miniw,minrw = snjac_wrap(nf,usrfun,lena,leng,x,xlow,xupp,cu,iu,ru,cw,iw,rw,[n,lencu,leniu,lenru,lencw,leniw,lenrw,usrfun_extra_args])
        Constructing wrapper function "snopta_wrap"...
          x,xstate,xmul,f,fstate,fmul,info,itn,mjritn,mincw,miniw,minrw,ns,ninf,sinf,obj = snopta_wrap(start,nxname,nfname,objuadd,objrow,prob,usrfun,iafun,javar,nea,a,igfun,jgvar,neg,xlow,xupp,xnames,flow,fupp,fnames,x,xstate,xmul,f,fstate,fmul,cu,iu,ru,cw,iw,rw,[nf,n,lena,leng,lencu,leniu,lenru,lencw,leniw,lenrw,usrfun_extra_args,overwrite_x,overwrite_xstate,overwrite_xmul,overwrite_f,overwrite_fstate,overwrite_fmul])
        Constructing wrapper function "snoptb_wrap"...
          hs,x,pi,rc,info,itn,mjritn,mincw,miniw,minrw,ns,ninf,sinf,obj = snoptb_wrap(start,nnames,nncon,nnobju,nnjac,iobju,objuadd,prob,funcon,funobj,valj,indj,locj,bl,bu,names,hs,x,pi,cu,iu,ru,cw,iw,rw,[m,n,nej,lencu,leniu,lenru,lencw,leniw,lenrw,funcon_extra_args,funobj_extra_args,overwrite_hs,overwrite_x,overwrite_pi])
        Constructing wrapper function "snoptc_wrap"...
          hs,x,pi,rc,info,itn,mjritn,mincw,miniw,minrw,ns,ninf,sinf,obj = snoptc_wrap(start,nnames,nncon,nnobju,nnjac,iobju,objuadd,prob,usrfunc,valj,indj,locj,bl,bu,names,hs,x,pi,cu,iu,ru,cw,iw,rw,[m,n,nej,lencu,leniu,lenru,lencw,leniw,lenrw,usrfunc_extra_args,overwrite_hs,overwrite_x,overwrite_pi])
        Constructing wrapper function "sqinit_wrap"...
          sqinit_wrap(prtfile,prtlen,summon,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "sqspec_wrap"...
          info = sqspec_wrap(spcfile,cw,iw,rw,[lencw,leniw,lenrw])
        Constructing wrapper function "sqopt_wrap"...
          hs,x,pi,rc,info,itn,mincw,miniw,minrw,ns,ninf,sinf,obj = sqopt_wrap(start,qphx,nnames,nnh,iobj,objadd,prob,vala,inda,loca,bl,bu,cobj,names,etype,hs,x,pi,cu,iu,ru,cw,iw,rw,[m,n,nea,ncobj,lencu,leniu,lenru,lencw,leniw,lenrw,qphx_extra_args,overwrite_hs,overwrite_x,overwrite_pi])
        Constructing wrapper function "snend"...
          snend(iw,[leniw])
    Wrote C/API module "snopt7_python" to file "build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c"
  adding 'build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py' to include_dirs.
creating build/src.linux-x86_64-2.7/build
creating build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7
creating build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers
creating build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py
copying /usr/local/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.c -> build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py
copying /usr/local/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.h -> build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py
building data_files sources
build_src: building npy-pkg config files
running build_py
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/optimize
copying __init__.py -> build/lib.linux-x86_64-2.7/optimize
creating build/lib.linux-x86_64-2.7/optimize/solvers
copying solvers/work.py -> build/lib.linux-x86_64-2.7/optimize/solvers
copying solvers/setup.py -> build/lib.linux-x86_64-2.7/optimize/solvers
copying solvers/solution.py -> build/lib.linux-x86_64-2.7/optimize/solvers
copying solvers/__init__.py -> build/lib.linux-x86_64-2.7/optimize/solvers
copying solvers/options.py -> build/lib.linux-x86_64-2.7/optimize/solvers
copying solvers/misc.py -> build/lib.linux-x86_64-2.7/optimize/solvers
creating build/lib.linux-x86_64-2.7/optimize/solvers/snopt
copying ./solvers/snopt/__init__.py -> build/lib.linux-x86_64-2.7/optimize/solvers/snopt
copying ./solvers/snopt/snopt.py -> build/lib.linux-x86_64-2.7/optimize/solvers/snopt
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
get_default_fcompiler: matching types: '['gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq', 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor']'
customize Gnu95FCompiler
Found executable /usr/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using build_ext
building 'optimize.solvers.snopt7_python' extension
compiling C sources
C compiler: x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC

creating build/temp.linux-x86_64-2.7/build
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/build
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers
creating build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py
compile options: '-Ibuild/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c'
x86_64-linux-gnu-gcc: build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c
x86_64-linux-gnu-gcc: build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.c
In file included from /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1822:0,
                 from /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                 from /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.h:13,
                 from build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:16:
/usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it with " \
  ^
In file included from /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1822:0,
                 from /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                 from /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:4,
                 from build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.h:13,
                 from build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.c:2:
/usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it with " \
  ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c: In function ‘cb_usrfun_in___user__routines’:
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:488:12: warning: variable ‘cu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp cu_Dims[2] = {-1, -1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:486:12: warning: variable ‘iu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp iu_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:483:12: warning: variable ‘ru_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp ru_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c: In function ‘cb_funcon_in___user__routines’:
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:712:12: warning: variable ‘cu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp cu_Dims[2] = {-1, -1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:709:12: warning: variable ‘iu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp iu_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:707:12: warning: variable ‘ru_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp ru_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c: In function ‘cb_funobj_in___user__routines’:
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:929:12: warning: variable ‘cu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp cu_Dims[2] = {-1, -1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:928:12: warning: variable ‘iu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp iu_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:927:12: warning: variable ‘ru_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp ru_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c: In function ‘cb_usrfunc_in___user__routines’:
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:1126:12: warning: variable ‘ru_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp ru_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:1125:12: warning: variable ‘cu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp cu_Dims[2] = {-1, -1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:1123:12: warning: variable ‘iu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp iu_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c: In function ‘cb_qphx_in___user__routines’:
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:1382:12: warning: variable ‘cu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp cu_Dims[2] = {-1, -1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:1380:12: warning: variable ‘iu_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp iu_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:1379:12: warning: variable ‘ru_Dims’ set but not used [-Wunused-but-set-variable]
   npy_intp ru_Dims[1] = {-1};
            ^
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c: At top level:
build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.c:170:12: warning: ‘f2py_size’ defined but not used [-Wunused-function]
 static int f2py_size(PyArrayObject* var, ...)
            ^
compiling Fortran sources
Fortran f77 compiler: /usr/bin/gfortran -Wall -g -ffixed-form -fno-second-underscore -fPIC -O3 -funroll-loops
Fortran f90 compiler: /usr/bin/gfortran -Wall -g -fno-second-underscore -fPIC -O3 -funroll-loops
Fortran fix compiler: /usr/bin/gfortran -Wall -g -ffixed-form -fno-second-underscore -Wall -g -fno-second-underscore -fPIC -O3 -funroll-loops
creating build/temp.linux-x86_64-2.7/solvers
creating build/temp.linux-x86_64-2.7/solvers/f2py
compile options: '-Ibuild/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c'
gfortran:f90: solvers/f2py/snopt7_python.f90
/usr/bin/gfortran -Wall -g -Wall -g -shared build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/snopt7_pythonmodule.o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.o build/temp.linux-x86_64-2.7/solvers/f2py/snopt7_python.o -L/usr/local/lib -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5 -lsnopt7 -lgfortran -o build/lib.linux-x86_64-2.7/optimize/solvers/snopt7_python.so

below is the output from installing snopt-python

mo@xx:/usr/local/snopt-python$ sudo python setup.py install --record all_snoptPython_files.txt

Appending optimize.solvers configuration to optimize
Ignoring attempt to set 'name' (from 'optimize' to 'optimize.solvers')
Appending optimize.solvers/snopt configuration to optimize
Ignoring attempt to set 'name' (from 'optimize' to 'optimize.solvers/snopt')
running install
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "optimize.solvers.snopt7_python" sources
f2py options: []
  adding 'build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/solvers/f2py' to include_dirs.
building data_files sources
build_src: building npy-pkg config files
running build_py
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
get_default_fcompiler: matching types: '['gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq', 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor']'
customize Gnu95FCompiler
Found executable /usr/bin/gfortran
customize Gnu95FCompiler
customize Gnu95FCompiler using build_ext
running install_lib
copying build/lib.linux-x86_64-2.7/optimize/__init__.py -> /usr/local/lib/python2.7/dist-packages/optimize
copying build/lib.linux-x86_64-2.7/optimize/solvers/snopt/__init__.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt
copying build/lib.linux-x86_64-2.7/optimize/solvers/snopt/snopt.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt
copying build/lib.linux-x86_64-2.7/optimize/solvers/work.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
copying build/lib.linux-x86_64-2.7/optimize/solvers/setup.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
copying build/lib.linux-x86_64-2.7/optimize/solvers/solution.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
copying build/lib.linux-x86_64-2.7/optimize/solvers/__init__.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
copying build/lib.linux-x86_64-2.7/optimize/solvers/snopt7_python.so -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
copying build/lib.linux-x86_64-2.7/optimize/solvers/options.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
copying build/lib.linux-x86_64-2.7/optimize/solvers/misc.py -> /usr/local/lib/python2.7/dist-packages/optimize/solvers
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/__init__.py to __init__.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt/__init__.py to __init__.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/snopt/snopt.py to snopt.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/work.py to work.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/setup.py to setup.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/solution.py to solution.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/__init__.py to __init__.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/options.py to options.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/optimize/solvers/misc.py to misc.pyc
running install_data
copying README -> /usr/local/lib/python2.7/dist-packages/optimize/
running install_egg_info
Writing /usr/local/lib/python2.7/dist-packages/optimizeoptimize-0.0.0.egg-info
running install_clib
customize UnixCCompiler
writing list of installed files to 'all_snoptPython_files.txt'
gnowzil commented 5 years ago

ImportError: libgfortran.so.4: cannot open shared object file: No such file or directory

We use gfortran 7.3 to compile the snopt library so you probably need to install gcc7 libraries.

GrauleM commented 5 years ago

You were right, I had a different version of gfortran installed.

Now I am getting a segmentation fault (see below) when I try to run the examples. Could you provide me with the exact specs of the system you are running this on (e.g., Ubuntu version, versions of required libraries, Python modules, ... )? I would like to set up the same system.

And just to double check: when you say 'SNOPT Fortran libraries', are you referring to the Fortran (only) Libraries or Fortran/C Libraries?

mo@xx:/usr/local/snopt-python/examples$ sudo python hs118.py 
Segmentation fault (core dumped)
gnowzil commented 5 years ago

I just made a minor update to one of the calls to a file-handling subroutine that was causing the seg fault. Verified it now works on my machine (ubuntu 18.04, gnu compiler 7.3). Either Fortran or Fortran/C library will work.

GrauleM commented 5 years ago

that fixed it, thank you!