How do I require Tkinter with distutils?

前端 未结 3 1559

I\'m trying to compile a program using distutils but I want to make sure that the user has Tkinter installed before installing my package.

My Google searche

相关标签:
3条回答
  • 2021-01-22 12:19

    You can have a class that inherits from install and then do this:

    from distutils.command.install import install
    
    class Install(install):
        def run(self):
            if not check_dependencies():
                 # Tkinter was not installed, handle this here
            install.run(self) # proceed with the installation
    
    def check_dependencies():
        try:
            return __import__('Tkinter')
        except ImportError:
            return None
    
    0 讨论(0)
  • 2021-01-22 12:19

    Tkinter is in the python standard library, it should always be there.

    0 讨论(0)
  • 2021-01-22 12:20

    Unfortunately there is no standard cross-platform way to force Tkinter to be installed. Tkinter is part of the Python standard library so distributors who strip out Tkinter, or other standard library modules, and package them as optional entities are doing so using their own package management tools and, in general, you'd need to know the specific commands for each distribution. The best you can do in general is test for and fail gracefully if Tkinter (or tkinter in Python 3) is not importable, so something like:

    import sys
    try:
        import Tkinter
    except ImportError:
        sys.exit("Tkinter not found")
    
    0 讨论(0)
提交回复
热议问题