Wikipédia:Questions techniques/semaine 40 2022

Besoin d'aide pour maintenir un bot en Python modifier

Article(s) ou modèle(s) concerné(s) : Projet:Les sans pagEs, Sujet:Wnsnrab2e2xo91cf

Questions :

Bonjour.

Depuis quelques années je pense, Framawiki ne contribue plus à frwiki, mais son bot Framabot continue lui à fonctionner, en particulier pour envoyer des tweets pour le projet des sans pagEs. Il y a un peu moins d'un an, le projet m'a contacté car le bot ne fonctionnait plus et Framawiki m’avait donné les droits sur toolforge sans me le dire. A l’époque, j’avais réussi à mettre à jour le bot pour qu'il fonctionne avec la nouvelle version de Pywikibot, et ensuite à le faire fonctionner avec le nouveau système de jobs de toolforge.

Le bot a à nouveau cessé de fonctionner, et ça correspond à une nouvelle version de Pywikibot qui n’est plus compatible avec Python 3.5. J'ai essayé de lancer le bot avec Python 3.7, mais j'ai des erreurs qui de ce que je comprends sont liées à un environnement virtuel Python qui n’a pas la même version. Mes connaissances en Python sont proches de zéro, quelqu'un pourrait-il m'aider ou serait motivé pour reprendre la maintenance de Framabot ? J'ai l'impression qu'il faut reconstruire l'environnement virtual avec la bonne version, mais comment fait-on ?

Ci-dessous les logs

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x00007fddb5c51740 (most recent call first):
/data/project/framabot/git/frwiki/twittersanspages.sh: line 6:     9 Aborted                 (core dumped) ~/venv3/bin/python3 /data/project/shared/pywikibot/core/pwb.py twittersanspages.py $1 $2 $3

Merci d'avance !


Message déposé par NicoV (discuter) le 3 octobre 2022 à 22:07 (CEST)[répondre]

Hello @NicoV : j'ignore comment fonctionne toolsforge mais en général, il suffit de modifier le path ou réinstaller le tout ; essaye :
cd Python3 (ton dossier env python : python –version)
./configure --libdir=/venv3/bin/python3
Sinon, tu dois avoir de multiples installations python, et $PYTHONHOME qui n’est pas assigné. Éventuellement un export PYTHONHOME='/venv3/bin/python3' peut régler le problème, à défaut de déplacer ton environnement vers /venv3/local.
Enfin, en dernière solution, je ne vois que la suppression et réinstallation de l’environnement :
rm -r /venv3/bin/python3 (=> dossier de ton environnement ?)
pip install -r requirements.txt
La documentation peut être utile en cas de make altinstall.
LD (d) 4 octobre 2022 à 17:05 (CEST)[répondre]
Bonsoir LD. C'est un peu du latin pour moi…
Sur toolforge, les outils sont lancés dans des machines virtuelles, dont les images de base sont fournies par la fondation, et chaque machine virtuelle a accès aux disques du serveur physique.
De ce que je comprends du bot :
  • Un environnement virtuel Python 3.5 est disponible dans ~/venv3 dans le compte framabot. Quand j’essaye d'activer cet environnement virtuel (source ~/venv3/bin/activate), ça semble marcher, python me dit qu'il est en version 3.5.3. Par contre, si j’essaye de savoir qu'est-ce qui est installé (pip list), j’ai la même erreur qu'au dessus. J'ai essayé le export PYTHONHOME, aucun changement…
  • Le script qui est lancé dans la machine virtuelle active cet environnement virtuel, et essaye de s'exécuter.
  • Le bot s'exécutait avec une image de base Python35, mais pywikibot n’est plus compatible avec cette version, j'ai donc changé l'image de base vers Python37. Le bot ne marche pas, sans doute parce que son environnement virtuel reste en 3.5.
Je me disais que l'environnement était cassé, j’ai donc regardé un peu de doc et essayer d'en créer un nouveau basé sur Python37. Voici ce que j’ai essayé :
  • python3 --version => 3.7.3, donc ce que je veux
  • python3 -m venv ~/venv4 pour créer un nouvel environnement virtuel
  • source ~/venv4/bin/activate pour activer l’environnement virtuel
  • python3 -m pip install --upgrade pip pour mettre à jour le gestionnaire de paquet ? (c'était dans le tutoriel que j’ai essayé de suivre…)
  • J'ai essayé de lancer le script du bot, et en fonction des erreurs, j'ai installé des packages dans l’environnement virtuel
  • pip install requests car un message d'erreur me disait qu'il n'y avait pas de module requests
  • pip install tweepy idem
  • Et maintenant, j'ai un message me disant qu'il n’y a pas de module tweepy.error mais pip install tweepy.error me donne une erreur
ERROR: Could not find a version that satisfies the requirement tweepy.error (from versions: none)
ERROR: No matching distribution found for tweepy.error
J'en suis là, et je ne sais plus trop quoi faire… --NicoV (discuter) 4 octobre 2022 à 22:41 (CEST)[répondre]
Bonjour NicoV  , àmha tes étapes sont bonnes et l'environnement ne poserait plus de problème (pour l'instant du moins) ;
Je t’invite à retenter avant d'essayer une réinstallation de Tweepy ;
D'après ma compréhension de ceci et du message d'erreur, Tweepy ne se serait pas dans une version adaptée : cette librairie n'aurait pas toujours été adapté pour du python3.7+, si tu fais pip install git+https://github.com/tweepy/tweepy.git (puisque le readme dit que c'est supporté), cela résoudra peut-être le problème.
Sinon, c'est étroitement lié à l'identification du bot à Twitter, mais puisque Tweepy est en cours d'ajustements (il y a eu des modifications il y a moins d'une heure et moins de 4 heures quand j'écris ceci), je me dis qu'il faudra peut-être réessayer ultérieurement (ou changer de librairie pour se connecter à Twitter API).
Honnêtement, je ne suis pas des plus compétents avec ces librairies mais El pitareio a déjà repris des scripts de Toto Azéro/Framawiki et s'y connaît bien en python/toolforge LD (d) 8 octobre 2022 à 04:55 (CEST)[répondre]
Bonjour NicoV. Je ne sais pas si cela est une piste mais le dépôt de tweepy contient un fichier errors.py, avec un s à la fin. Aurais-tu le code source de twittersanspages.py pour voir si n'y est pas importé par erreur un « tweepy.error », s oublié ? — Ideawipik (discuter) 8 octobre 2022 à 15:07 (CEST)[répondre]
Probablement moins par erreur, que parce que ça a changé dans tweepy : https://github.com/tweepy/tweepy/commit/cd5f696d09530f86ac0edf1ec0fe0a02578a3920
j'imagine que le script de FramaBot gère une erreur lors de l'appel à tweepy, avec la mise à jour de ce composant il faudra également mettre à jour le code (remplacer tweepy.error.TweepError par tweepy.errors.TweepyException ou une classe plus précise si c'est pertinent). El pitareio (discuter) 9 octobre 2022 à 16:49 (CEST)[répondre]
  LD, Ideawipik et El pitareio :. Merci pour les réponses. Effectivement, la modification côté tweepy semble être la cause, je vais essayer de modifier le code pour qu'il prenne en compte les modifications de tweepy. Si l'un d'entre vous veut aider directement sur le code, je dois pouvoir vous donner accès au bot sur toolforge. --NicoV (discuter) 9 octobre 2022 à 20:22 (CEST)[répondre]
Je suis preneur, d'autant que le bot a également cessé de mettre à jour les {{requête petscan}} qu'il traitait jusque là quotidiennement. On pourrait aussi regarder quelles autres tâches du bot il faudrait réactiver. El pitareio (discuter) 9 octobre 2022 à 21:27 (CEST)[répondre]
  El pitareio : Merci ! Je t'envoie un mail avec quelques informations. --NicoV (discuter) 10 octobre 2022 à 19:18 (CEST)[répondre]
Droits donnés sur toolforge. --NicoV (discuter) 10 octobre 2022 à 21:00 (CEST)[répondre]
J'ai finalement simplement retiré la ligne en cause, vu qu'on ne faisait rien de la classe TweepError. J'ai lancé, le bot a traité un tweet, on va le laisser tourner aux heures planifiées pour reprendre le reste.
Je me suis également permis de renommer venv4 en venv3.7, par souci de cohérence : venv2 étant en python2 et venv3 en python3(.5). J'ai basculé les autres tâches de venv3 à venv3.7, de la même façon on va laisser tourner cette nuit pour voir si ça remarche (un test sur les requêtes petscan a fonctionné). El pitareio (discuter) 17 octobre 2022 à 20:59 (CEST)[répondre]
  @El pitareio et merci à vous, LD (d) 18 octobre 2022 à 07:20 (CEST)[répondre]
je viens de revoir par hasard cette page en faisant une recherche, j'en profite pour vous remercier @El pitareio @Ideawipik @LD @NicoV de s'être occupé de mon bot pendant mon absence   ! Cordialement, -Framawiki 3 janvier 2024 à 18:19 (CET)[répondre]
Requête en attente d'une réponse (comment y répondre)

Connexion Wiki modifier

Article(s) ou modèle(s) concerné(s) :

Questions : Bonjour, je suis connecté sur ma box, mais Wiki me propose uniquement la version Mobile? comment est-ce possible ? je peux changer cela? Merci


Message déposé par Calypiges (discuter) le 7 octobre 2022 à 08:43 (CEST)[répondre]

Réponse apportée ci-dessous.
Bonjour. Cela n'a probablement rien à voir avec la 'box' mais plutôt le navigateur qui passe par une recherche qui propose la version mobile. https://fr.wikipedia.org devrait mener à la version grand écran. -- Xofc [me contacter] 7 octobre 2022 à 09:05 (CEST)[répondre]
  Calypiges : Bonjour. Tout en bas de chaque page Wikipédia, il y un lien "Version de bureau" (ou respectivement "Version mobile") qui permet de passer d'un format à l'autre. Cordialement, Csar62 (discuter) 7 octobre 2022 à 09:36 (CEST)[répondre]

Comment supprimer une catégorie ? modifier

Article(s) ou modèle(s) concerné(s) : Catégorie:Édifice religieux catholique en France

Questions : Bonjour, je viens à l'instant de créer la catégorie "Catégorie:Édifice religieux catholique en France" sans savoir qu'il existe déjà une catégorie similaire ("Catégorie:Église catholique en France"). Je ne parviens pas à supprimer ma catégorie (je ne vois pas l'hyperlien "annuler"). D'avance, merci. Cordialement,

Message déposé par Philarm (discuter) le 8 octobre 2022 à 02:14 (CEST)[répondre]

Réponse apportée ci-dessous.
Bonjour Philarm. Pour supprimer une catégorie vide, comme toute autre page qui ne demande pas un débat d'admissibilité : Wikipédia:Demande de suppression immédiate. Avec, dans le cas présent, le motif « à la demande de l'auteur ». Dans le titre de section {{a'|Catégorie:Édifice religieux catholique en France}} est valide.
Remarque technique : pour citer une catégorie dans une discussion, la syntaxe est la suivante. [[:Catégorie:…]] sans oublier les deux points du début, sinon, la page de discussion se retrouve catégorisée à tort. Et c'est mieux qu'un lien "externe". Ton message initial a été modifié en conséquence.
Remarque éditoriale, la catégorie existante pourrait concerner l'institution (avec une majuscule et peu d'articles sur Wikipédia) et non les bâtiments. Le titre de la nouvelle est plus précis (« édifice ») et en même temps pourrait accueillir des bâtiments qui ne sont pas des églises. Mais je n'ai pas d'avis sur quel titre serait le meilleur. En outre, Catégorie:Église catholique par pays semble regrouper exclusivement des édifices et il existe déjà Catégorie:Catholicisme en France. Donc, la suppression semble logique. Cordialement, — (discuter) 8 octobre 2022 à 03:55 (CEST)[répondre]
Grand merci, Ideawipik (et un merci supplémentaire pour m'avoir expliqué comment citer une catégorie dans une discussion (j'avais vainement essayé !). Cordialement, Philarm (discuter) 11 octobre 2022 à 02:30 (CEST)[répondre]

Bug pour une source modifier

Article(s) ou modèle(s) concerné(s) :

Questions : bonjour, j'ai inséré une source sur un article et ça bug complètement

article https://fr.m.wikipedia.org/w/index.php?title=Origine_du_SARS-CoV-2

dans le code, la source s'appelle

« Controversies around SARS-CoV-2 origin (part 3) From RaTG13 to the 2012 pneumonia with COVID-19-like symptoms »

mais pour une raison inconnue ça n'apparait pas dans les ref. A la place il y a noté la ref 25 kawasaki... Je ne sais pas du tout ce qui s'est passé. Wikipedia semble avoir mis un ref name erroné automatiquement. Pourriez vous corriger ce qui a ammené à ce bug , ainsi que le bug dans la page?

ça semble avoir raté durant cet oldid https://fr.m.wikipedia.org/wiki/Sp%C3%A9cial:MobileDiff/197577624

merci


Message déposé par --Vatadoshu (discuter) le 8 octobre 2022 à 14:33 (CEST)[répondre]

Réponse apportée ci-dessous.
Bonjour Vatadoshu. La réponse était dans la liste des références en bas d'article, avec ce message d'erreur en rouge : « Erreur de référence : Balise <ref> incorrecte : le nom « :2 » est défini plusieurs fois avec des contenus différents. ». C'était une erreur humaine, corrigée dans le code de l'article. Néanmoins, le lien vers la source que vous proposez mène à une page d'erreur : « Not Found. The requested URL was not found on this server. » À corriger, donc. — Ideawipik (discuter) 8 octobre 2022 à 14:58 (CEST)[répondre]
cool merci.
j'ai corrigé la réf, elle fonctionne maintenant.
"C'était une erreur humaine, corrigée dans le code de l'article" -> non justement puisque je n'ai inséré aucune ref name manuellement dans le code. c'est le site qui a buggué et mis la ref name tout seul.
merci pour la réparation. --Vatadoshu (discuter) 8 octobre 2022 à 15:12 (CEST)[répondre]
@Vatadoshu. Si vous arriver à reproduire la chose sur un brouillon, en décrivant étape par étape et le type d'éditeur utilisé, vous pouvez ouvrir un ticket sur Phabricator (Wikipédia:Rapports de bug et demandes de fonctionnalités). Sauf si vous le repérez déjà dans la liste des bugs ouverts.
Parmi les bugs connus, phabricator:T215867 ressemble à celui décrit mais aurait expliqué la présente situation uniquement si la première référence ":2" avait été placée dans un modèle. Ce qui n'est pas le cas ici. La question a aussi un rapport avec la possibilité de choisir manuellement un nom pour la référence : phabricator:T52568. Cet autre bug (phab:T312050) est assez éloquent sur des problèmes de l'éditeur visuel. Préférez le wikicode (Aide:Antisèche (wikicode))   ! — Ideawipik (discuter) 8 octobre 2022 à 16:25 (CEST)[répondre]

Articles en deux langues modifier

Comment avoir un article dans Wikipedia anglais et le même dans Wikipedia français ?? Il s’agit de l’article me concernant



Message déposé par Christianmegrelis 09/10/2237.171.194.79 (discuter) le 9 octobre 2022 à 23:32 (CEST)[répondre]

Réponse apportée ci-dessous.
Bonjour. Pour avoir une version en anglais d'un article il faut créer une traduction sur https://en.wikipedia.org/ (ou https://de.wikipedia.org/ pour une version en allemand, https://es.wikipedia.org/ pour une version en espagnol etc.). Wikipédia existe dans des dizaines de langues, voir https://www.wikipedia.org/
Cordialement Csar62 (discuter) 11 octobre 2022 à 08:05 (CEST)[répondre]
Il faut traduire la page manuellement. Vous pouvez le faire à l'aide de l'outil de traduction (lien) après avoir créé un compte. Cordialement, Escargot rouge (discuter) 11 octobre 2022 à 22:32 (CEST)[répondre]
  Escargot rouge : Pour info, sur la wikipédia anglophone, il y a une limitation, il faut être Extended confirmed user (= 30 jours d'ancienneté et 500 contributions) pour pouvoir créer directement un article dans l'espace principal avec l'outil de traduction, mais on peut créer un brouillon dans son espace personnel, en cliquant sur la roue dentée à coté de du bouton "Publish" + sélectionner "Personal Draft". Une fois la page dans le brouillon, on peut l'utiliser pour créer l'article dans l'espace principal par renommage ou copier/coller. Cdlt Csar62 (discuter) 12 octobre 2022 à 12:55 (CEST)[répondre]