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 :

Réadaptation d'un code python de Windows sur Linux


Sujet :

Python

  1. #21
    Membre actif
    Homme Profil pro
    Animateur Numérique
    Inscrit en
    Février 2013
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Animateur Numérique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2013
    Messages : 142
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ pip show selenium
    Name: selenium
    Version: 4.8.0
    Summary:
    Home-page: https://www.selenium.dev
    Author:
    Author-email:
    License: Apache 2.0
    Location: /home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages
    Requires: certifi, trio, trio-websocket, urllib3
    Required-by:
    Bon... On aura essayé

    EDIT: Par contre tu peux tenter avec Firefox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    from selenium import webdriver
     
    url = "https://www.google.com"
    driver = webdriver.Firefox()
    driver.get(url)

  2. #22
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    salut.
    Même punition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Traceback (most recent call last):
      File "/home/swapnfly/mypythonapp/main-no-prompt.py", line 22, in <module>
        driver = webdriver.Firefox()
      File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/firefox/webdriver.py", line 191, in __init__
        self.service.start()
      File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 104, in start
        self.assert_process_still_running()
      File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 115, in assert_process_still_running
        return_code = self.process.poll()
    AttributeError: 'Service' object has no attribute 'process'

  3. #23
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Est-ce qu'il ne suffirait pas d'adapter cette ligne ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver = webdriver.Chrome('/path/to/chromedriver')
    En mettant le chemin complet vers l'exécutable Chrome?

    Ou sinon, peut-être qu'il suffirait de garder driver = webdriver.Chrome(options=options) mais ajouter quelque chose comme ça (vérifier la doc pour être sûr):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options.setBinary("/path/to/other/chrome/binary")
    Vu que vous utilisez "service", voici un exemple d'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
     
    service = Service('/path/to/chromedriver')
    service.start()
     
    driver = webdriver.Remote(service.service_url)
    driver.get('http://www.google.com/');
     
    time.sleep(5) # Let the user actually see something!
    driver.quit()
    Référence: ChromeDriver - WebDriver for Chrome - Getting started

    Je vous conseille fortement de reconstituer un petit lab dans un VM par exemple. Essayez d'installer la même version de Python et de Selenium que sous Windows, afin de faire tourner votre application dans un environnement "comparable".

    De toute façon, vous pouvez tester Selenium séparément de votre application et c'est ce que je vous conseille de faire. Vous pouvez partir du lien que je vous ai donné précédemment. Faites tourner Selenium dans un script à part et une fois que vous aurez validé son fonctionnement vous verrez mieux ce qu'il y a à changer dans votre code.

  4. #24
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Merci d'avoir essayer de m'aider mais j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Traceback (most recent call last):
      File "/home/swapnfly/mypythonapp/main-no-prompt.py", line 22, in <module>
        service.start()
      File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 104, in start
        self.assert_process_still_running()
      File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 115, in assert_process_still_running
        return_code = self.process.poll()
    AttributeError: 'Service' object has no attribute 'process'
    avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    from selenium import webdriver
     
    from selenium.webdriver.chrome.service import Service
     
     
    service = Service('/home/swapnfly/mypythonapp')
    service.start()
     
    driver = webdriver.Remote(service.service_url)
    driver.get('http://www.google.com/');

  5. #25
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    je ne sais pas si c'est important mais pour me connecter à mon terminal, je tape les commandes suivantre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    source /home/swapnfly/virtualenv/mypythonapp/3.10/bin/activate && cd /home/swapnfly/mypythonapp

  6. #26
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Non, comme expliqué plus haut, mettez le path complet vers l'exécutable Chrome, pas vers votre application... probablement qu'en tapant which chrome vous pouvez récupérer la bonne valeur.

  7. #27
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    la commande chrome me donne ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ which chrome
    /usr/bin/which: no chrome in (/home/swapnfly/virtualenv/mypythonapp/3.10/bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin:/opt/cpanel/composer/bin:/home/swapnfly/bin)
    Pour info, j'ai mis l'exécutable chromedrive.exe dans mon application

    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
     
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ ll
    total 13980
    drwxrwxr-x 2 swapnfly swapnfly       44 Jan 20 15:11 __pycache__
    -rw-rw-r-- 1 swapnfly swapnfly     4120 Jan 26 14:34 a.txt
    -rwxr-xr-x 1 swapnfly swapnfly 12358144 Jan 23 10:13 chromedriver.exe
    -rw-rw-r-- 1 swapnfly swapnfly        0 Jan 27 13:36 geckodriver.log
    -rw-rw-r-- 1 swapnfly swapnfly  1908226 Jan 26 14:29 get-pip.py
    -rw-r--r-- 1 swapnfly swapnfly     6543 Jan 28 12:48 main-no-prompt.py
    -rwxr-xr-x 1 swapnfly swapnfly     5773 Jan 23 15:41 main.py
    -rw-r--r-- 1 swapnfly swapnfly      333 Jan 20 15:11 passenger_wsgi.py
    -rw-r--r-- 1 swapnfly swapnfly      159 Jan 18 16:08 pip-command.txt
    -rw-r--r-- 1 swapnfly swapnfly       87 Jan 20 15:20 pip-upgrade.txt
    -rw-r--r-- 1 swapnfly swapnfly       28 Jan 18 16:14 pip.txt
    drwxr-xr-x 2 swapnfly swapnfly        6 Jan 18 15:42 public
    -rw-rw-r-- 1 swapnfly swapnfly       28 Jan 23 15:33 test.py
    drwxr-xr-x 2 swapnfly swapnfly       25 Jan 18 15:42 tmp

  8. #28
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Ce que je ne comprends pas très bien, c'est que vous essayez apparemment de lancer un exécutable .exe (chromedriver.exe) sous Linux ?
    Vous devez installer Chrome + Selenium en suivant les instructions adaptées à votre plateforme Linux, pas juste copier un programme windows en espérant que ça va marcher sous Linux... Et une fois que ce sera fait, essayez de faire tourner Chrome puis Chrome + Selenium avant de les intégrer à votre application.

    Et chromedriver à lui seul ne suffit pas, il faut aussi que Chrome soit installé. Et ensuite Selenium.

  9. #29
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Je suis allé sur plusieurs tuto mais ma distribution ne reconnait aucune commande : ni sudo, ni yum, ni apt...
    Il n'y a rien qui passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ sudo yum install ./google-chrome-stable_current_*.rpm
    bash: sudo: command not found
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ yum install ./google-chrome-stable_current_*.rpm
    bash: yum: command not found
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$

  10. #30
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Quelle est votre distro ? A tout hasard essayez: hostnamectl.

  11. #31
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    j'ai vraiment l'impression que le système reconnaît aucune commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ hostnamectl
    bash: hostnamectl: command not found
    la version est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ cat /proc/version
    Linux version 3.10.0-962.3.2.lve1.5.36.el7.x86_64 (mockbuild@buildfarm03.cloudlinux.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Mon May 18 02:16:06 EDT 2020

  12. #32
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Mais votre hébergeur (car c'est un hébergeur n'est-ce pas ?) vous a vendu quoi ?
    Est-ce que vous n'êtes pas plutôt sur une espèce d'hébergement mutualisé, cheap mais qui ne vous donne aucun droit sur la machine y compris installer des packages ?
    Ca ressemble un peu à un environnement bridé. Si vous n'avez pas de compte root et pas de sudo alors il faudra peut-être clarifier vos besoins auprès de l'hébergeur.

    Comme vous êtes manifestement sur du Red Hat, dnf et/ou yum devraient fonctionner pour installer des packages au départ d'un repo, mais si dans le cas présent vous voulez installer un fichier .rpm préalablement téléchargé, c'est plutôt quelque chose comme ceci:
    Mais encore une fois, installer des packages requiert des droits root.

  13. #33
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Oui c'est un hébergeur mutualisé.
    Je vais me renseigner auprès d'eux pour savoir quels droits j'ai exactement.
    Merci

  14. #34
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Je viens d'avoir la réponse de mon hébergeur et c'est comme vous l'aviez dit. Je suis en hébergement mutualisé; je ne peux donc rien installé. Trop deg.
    Il faut maintenant que je trouve une solution pour héberger mon script python avec possibilité d'installer des packages.
    si vous avez des idées, je suis preneurs ;-)

  15. #35
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Il faut maintenant que je trouve une solution pour héberger mon script python avec possibilité d'installer des packages.
    Déjà faire fonctionner l'application développée sous Windows sur un Linux "local" sur lequel vous pourrez installer/modifier ce que vous voulez serait un préalable...
    Après vous faites un peu ce que vous voulez mais ici, c'est un forum de développeurs avec le langage Python. Pour les solutions d'hébergements, il y a des forums ad hoc ici ou ailleurs.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  16. #36
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Il y a des VPS pour quelques $... je doute que vous ayez besoin d'un serveur dédié rien que pour ça, juste un petit VPS.
    Ou peut-être une machine chez AWS ferait l'affaire...
    En attendant, je vous conseillerais de créer un environnement Linux dans une VM avec Virtualbox ou VMware. Ou bien il y a d'autres options comme utiliser une image Docker. Ainsi vous pourriez travailler sur le portage de ce projet au départ de votre poste de travail.

    Gardez quand même en tête que la procédure d'installation des packages varie un peu d'une distribution à une autre, il serait donc bien d'avoir une idée dès à présent. Là vous étiez parti sur du Red hat mais ce n'est pas forcément un choix délibéré de votre part.

    En réalité il n'y a pas tellement de choses à installer: Chrome, Selenium + Chrome driver mais ça demande de lire attentivement la doc.
    Et peut-être quelques packages Python mais si vous travaillez dans un virtualenv c'est encore plus facile.

  17. #37
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Merci beaucoup binarygirl pour tout ton aide et ta pédogogie.
    Je vais voir comment m'installer un environnement linux sur mon Windows 10.
    Merci encore 👌

Discussions similaires

  1. Wine 4.0 : le logiciel pour faire tourner les applications Windows sur Linux et macOS est disponible
    Par Christian Olivier dans le forum Logiciels Libres & Open Source
    Réponses: 2
    Dernier message: 23/01/2019, 16h06
  2. VM windows sur linux sans gui
    Par Sparky95 dans le forum Virtualisation
    Réponses: 2
    Dernier message: 22/09/2018, 11h11
  3. Un langage haut niveau pour développer des applications windows sur linux
    Par defois.hugo dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 04/09/2016, 10h50
  4. Pourquoi mon code ne fonctionne pas sur Linux
    Par Amaury_35 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2009, 09h58
  5. Réponses: 2
    Dernier message: 24/08/2007, 16h35

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