J'utilise un Raspberry Pi pour exécuter un script python qui joue un son (en utilisant pygame) et utilise le GPIO embarqué. Je sais que pour accéder au GPIO le script doit être exécuté en utilisant sudo, mais j'ai remarqué qu'en utilisant sudo python myscript.py
le code s'exécute, mais ne joue pas le son. En utilisant python myscript.py
le son joue, mais évidemment pas le GPIO. J'ai essayé de changer où je référence le fichier audio à un chemin absolu en vain, je ne suis pas trop familier avec les rouages internes de sudo, quelqu'un peut-il faire la lumière sur ce problème?L'exécution de Python à l'aide de sudo échoue à lire le fichier son
import pygame
pygame.init()
pygame.mixer.music.load("alert.wav")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
continue
GPIO.output(16,True)
GPIO.output(18,True)
Sortie de printenv
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
SSH_CONNECTION=192.168.0.114 64152 192.168.0.196 22
LANG=en_US.UTF-8
INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH=0
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS=true
INFINALITY_FT_CONTRAST=0
INFINALITY_FT_STEM_FITTING_STRENGTH=25
INFINALITY_FT_GLOBAL_EMBOLDEN_X_VALUE=0
XDG_SESSION_ID=c5
USER=pi
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT=100
INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH=0
INFINALITY_FT_GAMMA_CORRECTION=0 100
PWD=/home/pi
HOME=/home/pi
TEXTDOMAIN=Linux-PAM
SSH_CLIENT=192.168.0.114 64152 22
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH=10
SSH_TTY=/dev/pts/1
INFINALITY_FT_BRIGHTNESS=0
MAIL=/var/mail/pi
TERM=xterm
SHELL=/bin/bash
INFINALITY_FT_USE_VARIOUS_TWEAKS=true
SHLVL=1
INFINALITY_FT_BOLD_EMBOLDEN_Y_VALUE=0
INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE=0
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH=10
LOGNAME=pi
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
INFINALITY_FT_FILTER_PARAMS=11 22 38 22 11
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS=true
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE=40
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH=25
INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE=0
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH=25
INFINALITY_FT_FRINGE_FILTER_STRENGTH=0
_=/usr/bin/printenv
Sortie de sudo printenv
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LANG=en_US.UTF-8
TERM=xterm
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
LOGNAME=root
USER=root
USERNAME=root
HOME=/root
SHELL=/bin/bash
SUDO_COMMAND=/usr/bin/printenv
SUDO_USER=pi
SUDO_UID=1000
SUDO_GID=1000
Habituellement, cela se produit parce que lorsque vous exécutez la commande avec sudo, les variables d'environnement sont différentes, et sur la base de ces quelque chose ne peut pas être défini que vous devez le faire fonctionner. Faire 'printenv' depuis la ligne de commande puis 'sudo printenv' vous aidera à voir ce qui est différent. L'ajout de cette sortie à votre question serait utile. –
Au lieu d'utiliser 'sudo', vous devriez fixer l'autorisation aux ports GPIO. –
@JeffRichards J'ai ajouté la sortie des deux commandes 'printenv'. J'espère que cela vous aide à m'aider! – Exeleon