Bonjour,
Je cherche à compiler un projet initialement écrit en fortran sur lequel j'ai ajouté une couche python.
J'utilise f2py pour wrapper. Et je voudrais, comme je le faisais avant, compiler le projet avec scons.
J'ai glané des bouts de code ici ou là pour arriver à ce résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#!/usr/bin/env python
 
from numpy.distutils.scons import GetNumpyEnvironment, NumpyCheckLibAndHeader
env = GetNumpyEnvironment(ARGUMENTS)
config = env.NumpyConfigure(custom_tests = {'NumpyCheckLibAndHeader' : NumpyCheckLibAndHeader})
if not config.NumpyCheckLibAndHeader('sndfile', 'sf_open', 'sndfile.h', section = 'sndfile'):
    print "sndfile not found, this package cannot work without sndfile !" 
config.Finish()
 
src = ['common.f90']
wrapper_src = env.F2py('common', source = src)
env.NumpyPythonExtension('prog',src + wrapper_src)
Le problème est que lorsque je tape "scons" dans ma console, ubuntu me répond qu'il ne trouve pas "numpy.distutils.scons".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
scons: Reading SConscript files ...
ImportError: No module named scons:
  File "/home/outtier/Documents/Documentation/Programmation/Python/Interfacage/SConstruct", line 3:
    from numpy.distutils.scons import GetNumpyEnvironment, NumpyCheckLibAndHeader
Je cherche à installer le module manquant mais je ne sais pas comment m'y prendre.

J'ai trouvé la branche numpy.scons et tenté l'installation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
sudo python setup.py install
Mais ça ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
Running from numpy source directory.
non-existing path in 'numpy/distutils': 'site.cfg'
/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py:1338: DeprecationWarning: os.popen4 is deprecated.  Use the subprocess module.
  sin, sout = os.popen4('svnversion')
F2PY Version 2
Traceback (most recent call last):
  File "setup.py", line 90, in <module>
    setup_package()
  File "setup.py", line 83, in setup_package
    configuration=configuration )
  File "/home/blabla/branches/numpy.scons/numpy/distutils/core.py", line 148, in setup
    config = configuration()
  File "setup.py", line 49, in configuration
    config.add_subpackage('numpy')
  File "/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py", line 838, in add_subpackage
    caller_level = 2)
  File "/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py", line 821, in get_subpackage
    caller_level = caller_level + 1)
  File "/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py", line 768, in _get_configuration_from_setup_py
    config = setup_module.configuration(*args)
  File "numpy/setup.py", line 10, in configuration
    config.add_subpackage('core')
  File "/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py", line 838, in add_subpackage
    caller_level = 2)
  File "/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py", line 821, in get_subpackage
    caller_level = caller_level + 1)
  File "/home/blabla/branches/numpy.scons/numpy/distutils/misc_util.py", line 768, in _get_configuration_from_setup_py
    config = setup_module.configuration(*args)
  File "numpy/core/setup.py", line 292, in configuration
    blas_info = get_info('blas_opt',0)
  File "/home/blabla/branches/numpy.scons/numpy/distutils/system_info.py", line 267, in get_info
    return cl().get_info(notfound_action)
  File "/home/blabla/branches/numpy.scons/numpy/distutils/system_info.py", line 366, in __init__
    self.parse_config_files()
  File "/home/blabla/branches/numpy.scons/numpy/distutils/system_info.py", line 374, in parse_config_files
    self.cp.add_section(self.section)
  File "/usr/lib/python2.6/ConfigParser.py", line 242, in add_section
    raise ValueError, 'Invalid section name: %s' % section
ValueError: Invalid section name: DEFAULT
Si quelqu'un peu m'avancer.
Merci d'avance.