Установите ядро ​​Python 3.8 в Google Colaboratory

Я пытаюсь установить новую версию Python (3.8) с помощью conda.

!wget -O mini.sh https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh
!chmod +x mini.sh
!bash ./mini.sh -b -f -p /usr/local

Это прекрасно работает. Я могу позвонить !python script.py, чтобы запустить версию 3.8.

Итак, я пытаюсь установить еще одно ядро ​​jupyter с ядром Python 3.8.

!conda install -q -y --prefix /usr/local jupyter
!python -m ipykernel install --name "py38" --user

Проверяю, что ядро ​​установлено.

!jupyter kernelspec list

Потом скачиваю записную книжку. Откройте текстовый редактор, чтобы изменить спецификацию ядра на

"kernelspec": {
  "name": "py38",
  "display_name": "Python 3.8"
}

Это тот же трюк, который работал раньше с Javascript, Java и Golang.

Затем я загружаю отредактированный блокнот на Google Диск. Откройте блокнот в Google Colab. Он не может найти ядро ​​py38, поэтому использует обычное ядро ​​python3. Я снова запускаю все эти ячейки.

!wget -O mini.sh https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh
!chmod +x mini.sh
!bash ./mini.sh -b -f -p /usr/local
!conda install -q -y --prefix /usr/local jupyter
!python -m ipykernel install --name "py38" --user

Как и раньше, он устанавливает ядро ​​Python 3.8. Я обновляю браузер, чтобы он мог подключиться к новому ядру, надеясь, что раньше он работал как ядро ​​JavaScript, Java, Golang.

Не работает. Не может подключиться. Вот блокнот

Любая помощь будет оценена по достоинству.


person korakot    schedule 20.03.2020    source источник
comment
Вот как он работает с ijavascript colab.research.google.com/gist / korakot /   -  person korakot    schedule 23.03.2020
comment
Вот как это работает с Java colab.research .google.com / github / vistec-AI / colab / blob / master /.   -  person korakot    schedule 23.03.2020
comment
Это Голанг. colab.research.google.com/drive/   -  person korakot    schedule 23.03.2020


Ответы (3)


Я нашел, как запустить блокнот Python 3.8 на Colab.

  • установить Anaconda3
  • добавить (поддельную) библиотеку google.colab
  • запустить jupyterlab
  • получить доступ к нему с помощью ngrok

Вот код

# install Anaconda3
!wget -qO ac.sh https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh 
!bash ./ac.sh -b

# a fake google.colab library
!ln -s /usr/local/lib/python3.7/dist-packages/google \
       /root/anaconda3/lib/python3.8/site-packages/google

# start jupyterlab, which now has Python3 = 3.8
!nohup /root/anaconda3/bin/jupyter-lab --ip=0.0.0.0&

# access through ngrok, click the link
!pip install pyngrok -q
from pyngrok import ngrok
print(ngrok.connect(8888))
person korakot    schedule 08.09.2020
comment
это величайшее достижение в истории человечества :) Большое спасибо - person Piakkaa; 08.09.2020
comment
но я не могу импортировать библиотеки, import boto3 выдает ошибку: модуль не найден - person poon gilbert; 08.09.2020
comment
вы пробовали добавить путь к пакетам python3.6? sys.path.append('/usr/local/lib/python3.6/dist-packages'). Не уверен, что это правильный способ, но у меня это сработало. - person Piakkaa; 08.09.2020
comment
!/root/anaconda3/bin/pip install boto3 это тоже работает - person Piakkaa; 08.09.2020
comment
os.environ['PATH'] = '/root/anaconda3/bin:' + os.environ['PATH'] добавит новый путь pip и conda в среду вашего ноутбука jupyter. - person Piakkaa; 08.09.2020
comment
@korakot Просто следуя вашему рецепту, я могу не только использовать SSH из моего локального кода VS в Colab с Python 3.8, но также и настройки сервера Python 3.8 Jupyter на Colab готовы к использованию автоматически. Спасибо за блестящее решение. У меня вопрос: я попытался изменить один шаг вашего рецепта, заменив install Anaconda3 на install miniconda3 и выполнив conda install Jupyter вручную. Я обнаружил, что VS Code больше не обнаруживает сервер Jupyter. Вы знаете, как решить эту проблему? - person Li-Pin Juan; 19.09.2020
comment
@ Li-PinJuan Сначала я попробовал миниконду, но тоже потерпел неудачу. Вот почему я использую Anaconda, который каким-то образом правильно настраивает Jupyter. Надеюсь, что однажды мы узнаем, как использовать меньшую миниконду. - person korakot; 19.09.2020
comment
@korakot, это все еще работает? Я не могу запускать ядра через Python 3 этим методом. Я пробовал запустить jupyter-lab без nohup, чтобы просмотреть сообщения об ошибках - похоже, что-то больше не работает: 'google.colab._kernel.Kernel' could not be imported - person janniks; 24.03.2021

мы также можем использовать библиотеку pip kora

!pip install kora
import kora.install.py38
person poon gilbert    schedule 08.09.2020
comment
не уверен, достаточно ли я отдаю вам должное @korakot. Вы любезны сделать библиотеку - person poon gilbert; 08.09.2020
comment
Теперь в kora 0.6.6 он добавляет /root/anaconda3/bin в PATH для каждой новой записной книжки. Теперь вы можете правильно использовать pip. - person korakot; 11.09.2020
comment
Привет, коракот, есть ли документация по использованию коры? - person Andrey Kurnikovs; 13.12.2020
comment
Я получаю FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.6/dist-packages/google' -> '/root/anaconda3/lib/python3.8/site-packages/google' - person Tobi Akinyemi; 11.04.2021

Обновление: первоначально ответ был дан 29 марта 2020 года, но теперь этот ответ устарел, см. ответы выше.

Основываясь на этих предыдущих ответах *, похоже, что Google поддерживает только python 2.7 и python 3.6 прямо сейчас (по состоянию на 2020-03-29). Однако, если вам необходимо использовать python 3.8, вы можете подключиться к локальной среде выполнения: https://research.google.com/colaboratory/local-runtimes.html

* Предыдущие ответы:

person Bill Mei    schedule 29.03.2020
comment
Спасибо за информацию. Надеюсь, что когда-нибудь я смогу исправить код ядра. По крайней мере, сейчас я могу запустить Python 3.8 как скрипт в Colab. - person korakot; 30.03.2020
comment
не могли бы вы рассказать, как вы можете запускать 3.8 как скрипт? - person Nic Wanavit; 15.05.2020
comment
Да, я вижу, как SSH и установка таким образом, будучи взломанной, могут сделать это возможным, хотя Colab будет удалять среду при каждой перезагрузке. Однако все, что вы устанавливаете, появляется только в среде прямого ssh и, похоже, не попадает в ядро ​​в Colab в графическом пользовательском интерфейсе, о чем и спрашивал исходный вопрос. Дополнительная информация о SSH: imadelhanafi.com/posts/google_colal_server - person Bill Mei; 24.07.2020