first commit
This commit is contained in:
commit
e6c52820cd
227 changed files with 16156 additions and 0 deletions
105
install.py
Normal file
105
install.py
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import platform
|
||||
|
||||
def check_python_version():
|
||||
"""Vérifie que la version de Python est suffisante."""
|
||||
major, minor = sys.version_info[:2]
|
||||
if major < 3 or (major == 3 and minor < 7):
|
||||
print(f"Votre version de Python ({major}.{minor}) est trop ancienne.")
|
||||
print("SuiteConsultance nécessite Python 3.7 ou supérieur.")
|
||||
return False
|
||||
return True
|
||||
|
||||
def check_tk_version():
|
||||
"""Vérifie la version de Tk."""
|
||||
try:
|
||||
import tkinter as tk
|
||||
root = tk.Tk()
|
||||
tk_version = root.tk.call("info", "patchlevel")
|
||||
root.destroy()
|
||||
|
||||
major, minor = map(int, tk_version.split('.')[:2])
|
||||
print(f"Version de Tk détectée: {tk_version}")
|
||||
|
||||
if major < 8 or (major == 8 and minor < 6):
|
||||
print("SuiteConsultance fonctionne mieux avec Tk 8.6 ou supérieur.")
|
||||
print("Certaines fonctionnalités d'interface utilisateur peuvent être limitées.")
|
||||
return False
|
||||
return True
|
||||
except:
|
||||
print("Impossible de déterminer la version de Tk.")
|
||||
return False
|
||||
|
||||
def update_pip():
|
||||
"""Met à jour pip vers la dernière version."""
|
||||
try:
|
||||
print("Mise à jour de pip...")
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "--upgrade", "pip"])
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
print("Erreur lors de la mise à jour de pip.")
|
||||
return False
|
||||
|
||||
def install_dependencies():
|
||||
"""Installe les dépendances à partir du fichier requirements.txt."""
|
||||
requirements_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "requirements.txt")
|
||||
|
||||
if not os.path.exists(requirements_path):
|
||||
print(f"Erreur: Le fichier {requirements_path} n'existe pas.")
|
||||
return False
|
||||
|
||||
try:
|
||||
print("Installation des dépendances...")
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", requirements_path])
|
||||
return True
|
||||
except subprocess.CalledProcessError:
|
||||
print("Erreur lors de l'installation des dépendances.")
|
||||
return False
|
||||
|
||||
def create_directories():
|
||||
"""Crée les répertoires nécessaires s'ils n'existent pas."""
|
||||
directories = [
|
||||
"Data",
|
||||
"Data/clients",
|
||||
"Data/prospects",
|
||||
"output",
|
||||
"output/devis",
|
||||
"output/propositions",
|
||||
"output/factures"
|
||||
]
|
||||
|
||||
for directory in directories:
|
||||
dir_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), directory)
|
||||
if not os.path.exists(dir_path):
|
||||
print(f"Création du répertoire {directory}...")
|
||||
os.makedirs(dir_path)
|
||||
|
||||
def main():
|
||||
"""Fonction principale."""
|
||||
print("=== Installation de SuiteConsultance ===")
|
||||
|
||||
if not check_python_version():
|
||||
return
|
||||
|
||||
has_tk = check_tk_version()
|
||||
|
||||
update_pip()
|
||||
|
||||
if install_dependencies():
|
||||
create_directories()
|
||||
print("\n=== Installation terminée avec succès ===")
|
||||
print("\nVous pouvez maintenant lancer SuiteConsultance avec la commande:")
|
||||
print("python main.py")
|
||||
|
||||
if not has_tk:
|
||||
print("\nAttention: Votre version de Tk est obsolète.")
|
||||
print("L'interface utilisateur peut avoir un aspect différent de celui prévu.")
|
||||
else:
|
||||
print("\n=== L'installation a échoué ===")
|
||||
print("Veuillez vérifier les erreurs ci-dessus et réessayer.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue