He intentado todo lo que he visto en SO para que esto funcione, pero hasta ahora todo falla. Usando macOS Big Sur 11.6, bash en Terminal (no zsh).
Estoy tratando de crear un archivo de instalación y ejecutarlo con sh setup.sh que configurará el env, instalará python y luego lo activará. Nada sofisticado. Hacerlo manualmente funciona bien, pero una vez que lo pongo en un script de shell, no funcionará. Estoy ejecutando este script desde dentro de una carpeta de proyecto vacía.
Guión actual:
conda create -n MASTER python=3.8.5 -y conda activate MASTERSí, es así de simple para empezar. Comenté las otras instalaciones de pip hasta que esto funcione correctamente.
Intenté ejecutar: bash -i setup.sh pero aún no se activa. No recibo errores, pero todavía estoy atascado en (base) .
Intenté usar source: source /opt/anaconda3/etc/profile.d/conda.sh al comienzo del script y/o antes de activarlo, todavía no funciona. Sin errores de nuevo, pero atascado en (base) .
Intenté usar: eval $(conda shell.bash hook) al comienzo del script y antes de intentar activar el env, pero falla. Esta vez me sale el error:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init <SHELL_NAME> Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell Pero si ejecuto conda init bash (en Terminal o en el script mismo), genera:
no change /opt/anaconda3/condabin/conda no change /opt/anaconda3/bin/conda no change /opt/anaconda3/bin/conda-env no change /opt/anaconda3/bin/activate no change /opt/anaconda3/bin/deactivate no change /opt/anaconda3/etc/profile.d/conda.sh no change /opt/anaconda3/etc/fish/conf.d/conda.fish no change /opt/anaconda3/shell/condabin/Conda.psm1 no change /opt/anaconda3/shell/condabin/conda-hook.ps1 no change /opt/anaconda3/lib/python3.8/site-packages/xontrib/conda.xsh no change /opt/anaconda3/etc/profile.d/conda.csh no change /Users/liquidRock/.bash_profile No action taken. Intenté hacer /opt/anaconda3/bin/conda activate MASTER , que también me pide que haga conda init bash .
Incluso intenté agregar #!/bin/bash en la parte superior del archivo por si acaso, pero no dado.
Gracias a @fravadona por la más simple de las soluciones.
Simplemente ejecutando el script con source en lugar de sh . 🤦🏻♂️
Script final setup.sh (con mis instalaciones pip preliminares):
# env & python conda create -n MASTER python=3.8.5 -y conda activate MASTER # pip installs pip install cmake pip install --upgrade pip setuptools wheel pip install opencv-python==4.2.0.32 pip install argparse pip install datetime pip install colorama pip install python-dotenv pip install python-dotenv[cli]Ejecutado así:
$ source setup.shAnaconda crea el env, instala python y las dependencias, activa el env, luego pip instala las dependencias adicionales.
Todavía no estoy seguro de por qué no funcionará agregando otras cosas al script de shell, pero esta es una solución excelente y simple. Y sí, soy un novato con estas cosas.