IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ubunutu mise à jour 24.04 perte de packages [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut Ubunutu mise à jour 24.04 perte de packages
    Bonjour,
    Je ne sais pas trop si je suis au bon endroit.
    Suite à la mise à jour et la migration vers la version 24.04, des bibliothèques Python ont été supprimés de mon ordi.
    J'ai donc souhaité les réinstaller mais je rencontre des problèmes alors que j'ai un réel besoin de ces bibliothèques.
    Pour l'instant, je m'en sors grâce à mon portable que je n'ai pas mis à jour.

    Un programme qui fonctionne par exemple avec mon portable mais pas sur mon PC mis à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.chrome.service import Service
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import StaleElementReferenceException
    from selenium.webdriver.support import expected_conditions
     
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
     
     
    service = Service()
    options = webdriver.ChromeOptions()
    options.add_argument("--start-maximized")
    driver = webdriver.Chrome(service=service, options=options)
     
    from selenium.webdriver.support.ui import WebDriverWait
    wait = WebDriverWait(driver, 20)
    from selenium.common.exceptions import ElementClickInterceptedException
    et l'erreur qui est déclenchée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    WebDriverException: Unable to obtain working Selenium Manager binary; /usr/lib/python3/dist-packages/selenium/webdriver/common/linux/selenium-manager
     
     
    The above exception was the direct cause of the following exception:
     
    Traceback (most recent call last):
     
      File /usr/lib/python3/dist-packages/spyder_kernels/py3compat.py:356 in compat_exec
        exec(code, globals, locals)
     
      File /mnt/0DD2EA2C6FC1348E/UPS-cpge/ups-phys3.py:29
        driver = webdriver.Chrome(service=service, options=options)
     
      File /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45 in __init__
        super().__init__(
     
      File /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:49 in __init__
        self.service.path = DriverFinder.get_path(self.service, options)
     
      File /usr/lib/python3/dist-packages/selenium/webdriver/common/driver_finder.py:41 in get_path
        raise NoSuchDriverException(msg) from errNoSuchDriverException: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
    J'ai effectué pas mal d'essais, notamment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    sudo pip install selenium
    error: externally-managed-environment
     
    × This environment is externally managed
    ╰─> To install Python packages system-wide, try apt install
        python3-xyz, where xyz is the package you are trying to
        install.
     
        If you wish to install a non-Debian-packaged Python package,
        create a virtual environment using python3 -m venv path/to/venv.
        Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
        sure you have python3-full installed.
     
        If you wish to install a non-Debian packaged Python application,
        it may be easiest to use pipx install xyz, which will manage a
        virtual environment for you. Make sure you have pipx installed.
     
        See /usr/share/doc/python3.12/README.venv for more information.
     
    note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    hint: See PEP 668 for the detailed specification.
    Ce type de commande fonctionnait auparavant. Obligé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt install python3-selenium
    Cela semble ok.
    Du coup, je tente la même pour webdriver-manager et sans surprise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    sudo pip install webdriver-manager
    error: externally-managed-environment
     
    × This environment is externally managed
    ╰─> To install Python packages system-wide, try apt install
        python3-xyz, where xyz is the package you are trying to
        install.
     
        If you wish to install a non-Debian-packaged Python package,
        create a virtual environment using python3 -m venv path/to/venv.
        Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
        sure you have python3-full installed.
     
        If you wish to install a non-Debian packaged Python application,
        it may be easiest to use pipx install xyz, which will manage a
        virtual environment for you. Make sure you have pipx installed.
     
        See /usr/share/doc/python3.12/README.venv for more information.
     
    note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    hint: See PEP 668 for the detailed specification.
    Du coup, je tente l'autre façon d'installer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sudo apt install python3-webdriver-manager
    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances... Fait
    Lecture des informations d'état... Fait      
    E: Impossible de trouver le paquet python3-webdriver-manager
    Je précise que j'ai fait des essais avec le tiret du 6 et le tiret du 8 (underscore), sans succès de part et d'autre.
    J'ai trouvé des réponses avec venv mais je n'y comprends pas grand-chose.
    Voilà, si vous avez des pistes, je suis preneur. Au cas où, j'utilise l'éditeur Spyder. Bon week-end à tous et toutes.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Salut
    J'ai eu aussi des soucis avec Selenium après avoir migré en 24.04. En effet, une des nouveautés de cette LTS c'est que python3-selenium s'installe via apt/aptitude.

    De plus, Selenium a changé de façon de procéder. Maintenant, le service doit être associé au navigateur via le module "webdriver_manager" qui s'installe, lui, via pip.

    Une fois celui-ci installé, remplace ta ligne 16 par ces deux lignes:
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from webdriver_manager.chrome import ChromeDriverManager
    service=Service(ChromeDriverManager().install())

    Et pour venv ça n'a rien à voir. venv te permet de créer un environnement "à part" (nommé "environnement virtuel"). Dans cet environnement tu peux y installer divers trucs qui ne seront valables que dans l'environnement en question. Quand tu as fin de tester, tu quittes l'environnement et si tu le supprimes ça supprime tout ce qui y a été installé.
    On s'en sert quand on a différents projets qu'on veut rendre indépendants. Ou bien pour tester une lib sans l'installer sur son OS. Ceci dit, tu devrais t'y mettre car c'est pas bien difficile et pas mal pratique.

    Exemple
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd /tmp                       # Parce que je suis propre et quand je teste des trucs je me mets dans "/tmp" fait pour ça (et en plus chez-moi il est monté en RAM)
    python -m venv projetX        # Ca crée le dossier d'environnement virtuel
    source projetX/bin/activate   # Ca active un sous-shell qui te place en environnement virtuel
    Et à partir de là, tout ce que tu installes via "pip" se met dans un sous-dossier de "projetX". Quand tu en as marre de faire joujou, tu appelles le programme "deactivate" (en réalité une fonction chargée via le "source" appelé précédemment) et ça quitte le sous-shell (ça te te détache du projetX).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Merci Sve@r.
    Merci pour ces infos, je note.
    Malheureusement, webdriver_manager ne veut pas s'installer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    sudo pip install webdriver_manager
    error: externally-managed-environment
     
    × This environment is externally managed
    ╰─> To install Python packages system-wide, try apt install
        python3-xyz, where xyz is the package you are trying to
        install.
     
        If you wish to install a non-Debian-packaged Python package,
        create a virtual environment using python3 -m venv path/to/venv.
        Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
        sure you have python3-full installed.
     
        If you wish to install a non-Debian packaged Python application,
        it may be easiest to use pipx install xyz, which will manage a
        virtual environment for you. Make sure you have pipx installed.
     
        See /usr/share/doc/python3.12/README.venv for more information.
     
    note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    hint: See PEP 668 for the detailed specification.
    avec - ou _ ou rien du tout entre webdriver et manager, c'est pareil.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Malheureusement, webdriver_manager ne veut pas s'installer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sudo pip install webdriver_manager
    ...
    You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    C'est encore une nouveauté de la 24.04. Maintenant, pip protège l'OS. Si tu veux installer un pip depuis root, il te faut rajouter l'option "--break-system-packages" (terminologie bizarre car je la traduis par "option qui pète le système" mais pourquoi pas.... )
    => sudo pip install webdriver_manager --break-system-packages.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Merci mille fois. J'aurais juré avoir testé cette solution, l'ayant vu sur certains forums.
    Mes programmes refonctionnent, sans changement.
    Bon week-end.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Mes programmes refonctionnent, sans changement.
    Gaffe quand-même car des changements j'en ai notés. Exemple la méthode find_element_by_name(item) est devenue find_element(By.NAME, item).
    Sinon bienvenue dans le futur (enfin le présent) de Ubuntu
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour
    Citation Envoyé par Sve@r Voir le message
    option "--break-system-packages" (terminologie bizarre car je la traduis par "option qui pète le système" mais pourquoi pas.... )
    Et bien, si elle porte très bien son nom et c'est voulu

    Si on installe un paquet avec cette option, il sera installé dans le système (linux) et donc cette version peut être incompatible avec les autres paquets python/linux.
    On ne doit pas mélanger 36 sources pour nos paquets python ! car ici, on écrase le paquet linux !

    ps: si paquet non existant dans notre linux ? A voir quand même si il installe des dépendances qui elles sont dans nos dépôts.
    imagine que l'on installe avec sudo pip NonduPaquet ... "python-requests 2.32" (comme dépendance ou implicitement) alors que ton linux a besoin de la version "2.2x", on casse sans doute des choses
    Peut-être que le paquet pip est compatible (aujourd'hui, pour requests avec ubuntu), mais si on fait un pip update dans un an ou si l'on fait dans quelques mois encore un "sudo pip"

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 219
    Par défaut
    Hello,
    A noter qu'il existe une alternative à selenium et qui ne nécessite pas de webdrivers c'est playwright :
    Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast.
    Playwright Test was created specifically to accommodate the needs of end-to-end testing. Playwright supports all modern rendering engines including Chromium, WebKit, and Firefox. Test on Windows, Linux, and macOS, locally or on CI, headless or headed with native mobile emulation of Google Chrome for Android and Mobile Safari.
    Headless execution is supported for all browsers on all platforms
    System requirements
    Node.js 18+
    Windows 10+, Windows Server 2016+ or Windows Subsystem for Linux (WSL).
    macOS 13 Ventura, or later.
    Debian 12, Ubuntu 22.04, Ubuntu 24.04, on x86-64 and arm64 architecture.
    Cross-language. Use the Playwright API in TypeScript, JavaScript, Python, .NET, Java.
    et en plus c'est du Microsoft avec licence Apache 2.
    Ami calmant, J.P

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème mise à jour Windows 10 - perte de fichiers
    Par gb78630 dans le forum Windows 10
    Réponses: 10
    Dernier message: 17/08/2016, 17h42
  2. [TortoiseSVN] Mise à jour de tortoise, perte du dépot
    Par DonKnacki dans le forum Subversion
    Réponses: 1
    Dernier message: 12/02/2013, 10h32
  3. Mise jour des champs avec formulaires
    Par tetsuoo dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 09/09/2007, 20h35
  4. perte de package
    Par ricault dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/06/2007, 12h54
  5. [VBA-EXcel] Timer pour mise jour automatique
    Par Dos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/09/2006, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo