Scénario 1 : Exécuter des tâches automatisées sur jenkins, utiliser l'utilisateur jenkins (avec les autorisations sudo) lors de l'exécution de la tâche de test, le script de test est exécuté sous Linux ( arrière-plan), lorsque le code suivant est exécuté Rapport d'erreur :
os.system(f"/usr/bin/konsole -e {cmd_orin2_10s}")
Scénario 2 : Il n'y a aucun problème lorsque le script de test est exécuté localement, en utilisant l'utilisateur root, la fenêtre de commande peut être ouverte normalement
. Journal des erreurs :
17:44:03 qt.qpa.xcb: could not connect to display 17:44:03 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. 17:44:03 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 17:44:03 17:44:03 Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Solution :
Du scénario 1 Il peut être comparé au scénario 2 et devrait être causé par des variables environnementales. Pour trouver le problème sous les deux aspects des variables d'environnement et des fenêtres d'affichage, vous pouvez trouver export DISPLAY=":0.0"
Beaucoup Parfois, vous vous habituez à utiliser pycharm et faites tout, mais vous ignorez de nombreux problèmes de chemin. Lorsque vous avez occasionnellement besoin d'interagir avec d'autres environnements et plates-formes, par exemple, écrire un programme C# pour appeler python équivaut à une excuse. Le terminal est démarré en passant des paramètres. À ce moment, divers problèmes d'absence de module seront affichés. La raison en est que lorsque l'environnement externe appelle l'interface python, il doit trouver différents modules dans votre programme, mais si ces modules sont toujours If. il n'est pas ajouté à la variable d'environnement, il ne sera pas trouvé. Par conséquent, il est recommandé d'utiliser l'instruction suivante au début de chaque fichier py utilisé
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
Cette opération peut enregistrer l'intégralité du répertoire de niveau supérieur du. fichier actuel Ajoutez-le à la variable d'environnement, afin que vous puissiez facilement appeler tous les fichiers du répertoire de niveau supérieur
Si vous avez plusieurs niveaux de répertoire et que le répertoire actuel se trouve dans un emplacement plus profond, vous pouvez légèrement modifier cette commande En bref, incluez simplement tous les fichiers et répertoires que vous souhaitez utiliser, par exemple, vous pouvez utiliser
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../')
Bien sûr, si vous souhaitez simplement appeler tous les répertoires du dossier actuel, vous pouvez utiliser
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + './')
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!