J'essaye d'installer des paquets d'Anaconda vers le colab de google.
Mais ça ne marche pas. Le tout est de la magie vaudou.
Le code suivant est dans une cellule.
Cellule du notebook:
!wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
!bash Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local/
!rm Miniconda3-latest-Linux-x86_64.sh
!conda install -y --prefix /usr/local/ ujson aiohttp tqdm
import sys
os.environ['PYTHONPATH'] = "/usr/local/miniconda3"
os.environ['PATH'] = '/usr/local/miniconda3/bin:' + os.environ['PATH']
sys.path.append('/usr/local/lib/python3.6/site-packages/')
import ujson
Résultat:
ModuleNotFoundError: No module named 'ujson'
Si je vais dans un shell bash avec "! Bash" et que j'exécute le python "bash", je peux importer ujson dans ce python. Mais, si j'importe directement ujson dans le python du "notebook", cela ne fonctionne pas.
Les méthodes ici ne semblent plus fonctionner
!wget -c https://repo.anaconda.com/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh
!chmod +x Miniconda3-4.5.4-Linux-x86_64.sh
!bash ./Miniconda3-4.5.4-Linux-x86_64.sh -b -f -p /usr/local
!conda install -q -y --prefix /usr/local ujson
import sys
sys.path.append("/usr/local/conda/lib/python3.6/site-packages/")
print(ujson.dumps({1:2}))
Quel est le dernier hack qui fonctionnerait?
Il y a 2 problèmes qui doivent être résolus:
Pour 1, vous devez ajouter python=3.6
à conda install
.
Pour 2, vous devez ajouter le chemin vers /usr/local/lib/python3.6/site-packages
Voici le nouveau code
# same
!wget -c https://repo.anaconda.com/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh
!chmod +x Miniconda3-4.5.4-Linux-x86_64.sh
!bash ./Miniconda3-4.5.4-Linux-x86_64.sh -b -f -p /usr/local
# update 1
!conda install -q -y --prefix /usr/local python=3.6 ujson
# update 2
import sys
sys.path.append('/usr/local/lib/python3.6/site-packages')
# test it
import ujson
print(ujson.dumps({1:2}))
Dans google colab, Jupyter IDE, essayez d'exécuter:
!pip install ujson
Cela a fonctionné pour moi avant. Faites-moi savoir si cela fonctionne maintenant.