Opened 3 years ago

Closed 3 years ago

#7077 closed defect (fixed)

Remove distutils

Reported by: Zach Pearson Owned by: Zach Pearson
Priority: blocker Milestone:
Component: Build System Version:
Keywords: Cc: chimerax-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description (last modified by Zach Pearson)

It's probably enough to from setuptools import distutils in bundle builder. Not sure what to do about these .pyx, .pxd files.

sysconfig need not be imported from distutils in core; it's its own module.

$ cd src && rg distutils
bundles/spacenavigator/setup.py.in:# import distutils.core
bundles/spacenavigator/setup.py.in:# distutils.core.DEBUG = True
bundles/atom_search/search_cpp/ast.pyx:# distutils: language=c++
bundles/atom_search/search_cpp/ast.pyx:# distutils: include_dirs=search_cpp
bundles/atom_search/search_cpp/ast.pxd:# distutils: language=c++
bundles/atomic/src/connect.pyx:# distutils: language=c++
bundles/atomic/atomic_cpp/connect.pyx:# distutils: language=c++
bundles/atomic/atomic_cpp/cytmpl.pyx:# distutils: language=c++
bundles/atomic/atomic_cpp/connect.pxd:# distutils: language=c++
bundles/atomic/atomic_cpp/setup-cymol.py:from distutils.core import setup
bundles/atomic/atomic_cpp/setup-cymol.py:from distutils.extension import Extension
bundles/atomic/atomic_cpp/cytmpl.pxd:# distutils: language=c++
bundles/atomic/atomic_cpp/setup-cytmpl.py:from distutils.core import setup
bundles/atomic/atomic_cpp/setup-cytmpl.py:from distutils.extension import Extension
bundles/atomic/atomic_cpp/connect.cpp:    "distutils": {
bundles/atomic/atomic_cpp/connect.cpp: * # distutils: language=c++             # <<<<<<<<<<<<<<
bundles/atomic/atomic_cpp/cydecl.pxd:# distutils: language=c++
bundles/atomic/atomic_cpp/cyelem.pxd:# distutils: language=c++
bundles/atomic/atomic_cpp/cycoord.pxd:# distutils: language=c++
bundles/atomic/atomic_cpp/cymol.pyx:# distutils: language=c++
bundles/bundle_builder/src/bundle_builder.py:# with the contents of distutils, and we want Cython to win
bundles/bundle_builder/src/bundle_builder.py:import distutils  # noqa
bundles/bundle_builder/src/bundle_builder.py:from numpy.distutils.misc_util import get_numpy_include_dirs
bundles/bundle_builder/src/bundle_builder.py:# by numpy.distutils, which eventually calls subprocess.
bundles/bundle_builder/src/bundle_builder.py:        # HACK: distutils uses a cache to track created directories
bundles/bundle_builder/src/bundle_builder.py:        import distutils.dir_util
bundles/bundle_builder/src/bundle_builder.py:            distutils.dir_util._path_created.clear()
bundles/bundle_builder/src/bundle_builder.py:        import distutils.ccompiler
bundles/bundle_builder/src/bundle_builder.py:        import distutils.sysconfig
bundles/bundle_builder/src/bundle_builder.py:        import distutils.log
bundles/bundle_builder/src/bundle_builder.py:        distutils.log.set_verbosity(1)
bundles/bundle_builder/src/bundle_builder.py:        compiler = distutils.ccompiler.new_compiler()
bundles/bundle_builder/src/bundle_builder.py:        distutils.sysconfig.customize_compiler(compiler)
bundles/bundle_builder/src/bundle_builder.py:        compiler.add_include_dir(distutils.sysconfig.get_python_inc())
bundles/bundle_builder/src/bundle_builder.py:        import distutils.ccompiler
bundles/bundle_builder/src/bundle_builder.py:        import distutils.sysconfig
bundles/bundle_builder/src/bundle_builder.py:        compiler = distutils.ccompiler.new_compiler()
bundles/bundle_builder/src/bundle_builder.py:        distutils.sysconfig.customize_compiler(compiler)
bundles/bundle_builder/src/bundle_builder.py:        import distutils.ccompiler
bundles/bundle_builder/src/bundle_builder.py:        import distutils.sysconfig
bundles/bundle_builder/src/bundle_builder.py:        compiler = distutils.ccompiler.new_compiler()
bundles/bundle_builder/src/bundle_builder.py:        distutils.sysconfig.customize_compiler(compiler)
bundles/bundle_builder/setup.py.in:# import distutils.core
bundles/bundle_builder/setup.py.in:# distutils.core.DEBUG = True
bundles/mmcif/src/mmcif.pyx:# distutils: language=c++
bundles/mmcif/src/mmcif_write.pyx:# distutils: language=c++
bundles/toolshed_utils/setup.py.in:# import distutils.core
bundles/toolshed_utils/setup.py.in:# distutils.core.DEBUG = True
core/setup.py.in:# import distutils.core, distutils.debug
core/setup.py.in:# distutils.core.DEBUG = True
core/setup.py.in:# distutils.debug.DEBUG = True
apps/ChimeraX/ChimeraX_main.py:        from distutils import sysconfig
core/_serialize.pyx:# distutils: language=c++
core/__init__.py:            from distutils import log
examples/sample/setup.py.in:# import distutils.core
examples/sample/setup.py.in:# distutils.core.DEBUG = True

Change History (4)

comment:1 by Zach Pearson, 3 years ago

Cc: chimerax-programmers added

comment:2 by Zach Pearson, 3 years ago

Description: modified (diff)

comment:3 by Zach Pearson, 3 years ago

Owner: set to Zach Pearson
Status: newassigned

comment:4 by Zach Pearson, 3 years ago

Resolution: fixed
Status: assignedclosed

A handful of commits eventually fixed this. We no longer directly import distutils anywhere in ChimeraX.

Note: See TracTickets for help on using tickets.