Установленные пакеты исчезли в Google Cloud Shell

Я пытался установить кучу пакетов python в консоли Google Cloud Platform. Однако места на диске было недостаточно, и установка не удалась. Интересно, что в какой-то момент сетевое соединение было потеряно, и мне пришлось его переподключить.

А затем я проверил несколько пакетов, которые уже были установлены, прежде чем я попытался установить другие пакеты python.

Ожидая

$ python
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> 

Но numpy не был найден. Это реальный результат.

$ python 
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named numpy
>>> 

Это известная проблема? Как я могу предотвратить это снова?


Действия по воспроизведению

  1. Нажмите значок «Активировать Google Cloud Shell» на верхней панели.
  2. У меня два проекта, и один из них выбран.
  3. Установите пакет python-numpy следующим образом:

    Welcome to Cloud Shell! For help, visit https://cloud.google.com/cloud-shell/help.
    $ sudo apt-get install python-numpy
    
  4. Попробуйте импортировать numpy в приглашении python -> он успешно импортирован.

  5. Закройте вкладку браузера или просто закройте вкладку оболочки

  6. Через несколько часов (возможно, через 2 часа) снова откройте Cloud Shell.

  7. Попробуйте импортировать numpy в приглашении python -> ошибка «Нет модуля с именем numpy».


person SunnyShiny9    schedule 22.04.2016    source источник
comment
Кажется, это не связано с дисковым пространством .. Я установил пакет numpy вчера вечером, и он снова исчез ..! Что я должен делать?   -  person SunnyShiny9    schedule 22.04.2016


Ответы (3)


Это известное ограничение Google Cloud Shell - примерно через час бездействия все модификации вне $ HOME, включая установленные пакеты, теряются. См. Пользовательские установленные пакеты программного обеспечения и постоянство .

Также обратите внимание на эту цитату относительно ограничений использования:

Если вы не пользуетесь Cloud Shell регулярно, мы можем утилизировать ваш домашний диск. Вы получите уведомление по электронной почте, прежде чем мы это сделаем, и простой запуск сеанса предотвратит его удаление. Пожалуйста, рассмотрите другое решение в Google Cloud Storage для конфиденциальных данных, которые вы хотите хранить в течение длительного времени.

person Claus Conrad    schedule 19.02.2017

Вы имеете в виду Cloud Shell? Cloud Shell подключается к постоянному диску, и все, что вы устанавливаете на этот диск, следует сохранить. Если вы постоянно видите иное, сообщите нам об этапах репо.

person Mete Atamel    schedule 24.04.2016
comment
Привет, Мете. Да, это в Could Shell. Я добавил шаги воспроизведения выше. - person SunnyShiny9; 25.04.2016
comment
Мете, у тебя есть еще совет? Домашний каталог выглядит постоянным, но другие разделы могут не быть по умолчанию .. Нужно ли мне настраивать Compute Engine и получать виртуальные машины? - person SunnyShiny9; 27.04.2016
comment
Виртуальная машина Cloud Shell недолговечна и отключается, когда вы не используете ее в интерактивном режиме. См. Документацию здесь. - person Alexey Alexandrov; 02.05.2016
comment
Для Python вы можете использовать pip install --user ‹package›, чтобы установить пакеты Python в свой домашний каталог, который постоянен в Cloud Shell. - person Alexey Alexandrov; 02.05.2016
comment
Спасибо @AlexeyAlexandrov. Это было полезно ..! - person SunnyShiny9; 04.05.2016

Облачная оболочка подчеркнута, поэтому все, что было после $HOME, исчезло. Но вы можете использовать .customize_enviroment для добавления пакетов apt и пакетов apt-get следующим образом

#!/bin/bash
# It runs as root so no need to use sudo
apt-get install test
person anot    schedule 18.03.2021