1- import os , sys , subprocess , shutil
1+ import os , sys , subprocess
2+ import os .path as osp
3+
24try :
35 from setuptools import setup , Extension
46 setuptools_extra_kwargs = {
57 "install_requires" : ["numpy>=1.7" ],
68 "entry_points" : {
79 'console_scripts' : [
8- 'ncinfo = netCDF4_utils :ncinfo' ,
9- 'nc4tonc3 = netCDF4_utils :nc4tonc3' ,
10- 'nc3tonc4 = netCDF4_utils :nc3tonc4' ,
10+ 'ncinfo = netCDF4.utils :ncinfo' ,
11+ 'nc4tonc3 = netCDF4.utils :nc4tonc3' ,
12+ 'nc3tonc4 = netCDF4.utils :nc3tonc4' ,
1113 ]
1214 },
1315 }
@@ -349,22 +351,25 @@ def getnetcdfvers(libdirs):
349351 sys .stdout .write ('using netcdf library version %s\n ' % netcdf_lib_version )
350352
351353cmdclass = {}
354+ netcdf4_src_root = osp .join ('netCDF4' , '_netCDF4' )
355+ netcdf4_src_c = netcdf4_src_root + '.c'
352356if has_cython and 'sdist' not in sys .argv [1 :]:
353357 sys .stdout .write ('using Cython to compile netCDF4.pyx...\n ' )
354- extensions = [Extension ("netCDF4" ,["netCDF4.pyx" ],
355- libraries = libs ,
356- library_dirs = lib_dirs ,
357- include_dirs = inc_dirs ,
358- runtime_library_dirs = lib_dirs ),
358+ extensions = [Extension ("netCDF4._netCDF4" ,
359+ [netcdf4_src_root + '.pyx' ],
360+ libraries = libs ,
361+ library_dirs = lib_dirs ,
362+ include_dirs = inc_dirs ,
363+ runtime_library_dirs = lib_dirs ),
359364 Extension ('netcdftime._datetime' , ['netcdftime/_datetime.pyx' ])]
360365 # remove netCDF4.c file if it exists, so cython will recompile netCDF4.pyx.
361366 # run for build *and* install (issue #263). Otherwise 'pip install' will
362367 # not regenerate netCDF4.c, even if the C lib supports the new features.
363- if len (sys .argv ) >= 2 and os .path .exists ('netCDF4.c' ):
364- os .remove ('netCDF4.c' )
368+ if len (sys .argv ) >= 2 and os .path .exists (netcdf4_src_c ):
369+ os .remove (netcdf4_src_c )
365370 # this determines whether renameGroup and filepath methods will work.
366371 has_rename_grp , has_nc_inq_path , has_nc_inq_format_extended = check_api (inc_dirs )
367- f = open (' constants.pyx' ,'w' )
372+ f = open (osp . join ( 'src' , ' constants.pyx') ,'w' )
368373 if has_rename_grp :
369374 sys .stdout .write ('netcdf lib has group rename capability\n ' )
370375 f .write ('DEF HAS_RENAME_GRP = 1\n ' )
@@ -384,13 +389,14 @@ def getnetcdfvers(libdirs):
384389 sys .stdout .write ('netcdf lib does not have nc_inq_format_extended function\n ' )
385390 f .write ('DEF HAS_NC_INQ_FORMAT_EXTENDED = 0\n ' )
386391 f .close ()
387- ext_modules = cythonize (extensions )
392+ ext_modules = cythonize (extensions , include_path = [ 'src' ] )
388393else :
389- extensions = [Extension ("netCDF4" ,["netCDF4.c" ],
390- libraries = libs ,
391- library_dirs = lib_dirs ,
392- include_dirs = inc_dirs ,
393- runtime_library_dirs = lib_dirs ),
394+ extensions = [Extension ("netCDF4._netCDF4" ,
395+ [netcdf4_src_c ],
396+ libraries = libs ,
397+ library_dirs = lib_dirs ,
398+ include_dirs = inc_dirs ,
399+ runtime_library_dirs = lib_dirs ),
394400 Extension ('netcdftime._datetime' , ['netcdftime/_datetime.c' ])]
395401 ext_modules = extensions
396402
@@ -412,7 +418,6 @@ def getnetcdfvers(libdirs):
412418 "Topic :: Software Development :: Libraries :: Python Modules" ,
413419 "Topic :: System :: Archiving :: Compression" ,
414420 "Operating System :: OS Independent" ],
415- py_modules = ["netCDF4_utils" ],
416- packages = ['netcdftime' ],
421+ packages = ['netcdftime' , 'netCDF4' ],
417422 ext_modules = ext_modules ,
418423 ** setuptools_extra_kwargs )
0 commit comments