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
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
Tkinter is in the python standard library, it should always be there.
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")