He instalado Python 3 a través de Homebrew, en mi sistema Mojave, y lo tengo symlinked a /usr/local/bin/python
.
Tengo un plist de LaunchDaemon como el siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>--version</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin/python3</string>
<key>PYTHONPATH</key>
<string>/usr/local/lib/python3.7/site-packages</string>
</dict>
<key>StandardOutPath</key>
<string>/var/log/test.log</string>
<key>StandardErrorPath</key>
<string>/var/log/test_err.log</string>
</dict>
</plist>
Sin embargo, esto todavía devuelve Python 2.7.10 que está instalado por defecto en el sistema Mojave.
¿Cómo configuro la ruta de este LaunchDaemon para que tenga acceso al entorno de Python 3?
Información adicional:
Para el plist completo que estoy utilizando, el programa llama a Python en algún momento (Python no es el punto de entrada), por lo que requiere el PYTHONPATH
para que apunte a los paquetes del sitio donde se han instalado algunos paquetes adicionales.
El error que aparece allí es:
Your PYTHONPATH points to a site-packages dir for Python 3.x but you are running Python 2.x!
PYTHONPATH is currently: "/usr/local/lib/python3.7/site-packages"
You should `unset PYTHONPATH` to fix this.
0 votos
¿Qué es?
/usr/local/bin/python3
? ¿Un archivo o una carpeta? ¿No debería elPATH
se establezca la variable/usr/local/bin
si su binario Python es/usr/local/bin/python
?0 votos
Oh, eso es un archivo - he probado a ponerlo sólo en
/usr/local/bin
pero no tuve suerte con eso...0 votos
Quizás vea este enlace stackoverflow.com/questions/1893598/pythonpath-vs-sys-path
0 votos
La respuesta podría cambiar si no está llamando a Python directamente - podría haber problemas con el script de llamada y también cómo llama a Python