Список Conda показывает пакет, но не может импортировать его

Здесь проблема, которую я испытываю на виртуальной виртуальной сети. Я использую ubuntu 64b guest на хосте Windows 7 с Virtual Box.

Поэтому, когда я делаю:

source activate MyVirtEnv
conda list |grep visdom
visdom                    0.1.05                        0    conda-forge

Кажется, что он установлен правильно? Следующий шаг:

python
Python 3.5.3 |Anaconda custom (64-bit)| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import visdom
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'visdom'
>>> 

Хорошо, здесь я потерян. Почему python не распознает этот пакет (и это не единственный). Я все еще в моем env активирован при выполнении python.

Я новичок в python, поэтому, возможно, я пропустил огромную ошибку, пожалуйста, будьте добры: D

Спасибо за вашу помощь в этом!

Обновление 1:

[email protected]:~$ source activate universe
(universe) [email protected]:~$ python
Python 3.5.3 |Anaconda custom (64-bit)| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/deeplearning/anaconda3/envs/universe/lib/python35.zip', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/plat-linux', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/lib-dynload', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/site-packages', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/site-packages/Sphinx-1.5.6-py3.5.egg', '/home/deeplearning/gym', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/site-packages/torchvision-0.1.9-py3.5.egg']
>>> sys.executable
'/home/deeplearning/anaconda3/envs/universe/bin/python'
>>> 

Ответ 1

Кажется, это проблема, связанная с deps, смотрите здесь github, так что, возможно, вам следует убедиться, что Anaconda обновлена, чтобы вы работали со всеми последними выпусками пакетов. Чтобы сделать это, вы должны сначала запустить утилиту conda: conda update conda При появлении запроса введите y, чтобы продолжить обновление. После этого обновления также запускается anaconda: conda update anaconda Снова при появлении соответствующего запроса введите y, чтобы продолжить, после завершения обновлений откройте новый терминал и проверьте: conda --version и: python --version

  • Теперь попробуйте переустановить visdom: conda conda install -n universe visdom --force-reinstall или просто обновить все пакеты: conda install -n universe --update-all.

Ответ 2

Проверьте файлы, установленные для пакета согласно Списку установленных файлов пакета? и сравните список с вашим sys.path.

В частности, для visdom, просматривая содержимое доступного visdom Linux, я вижу, что он содержит пути, такие как lib/python3.6/site-packages - то есть это для Python 3.6, в то время как ваш Python - 3.5.

Ответ 3

Пара возможностей приходят в голову мне:

1. Потенциальная проблема пути

Ваша команда python может относиться к другому python, отличному от python который находится в вашей активной папке среды conda. Проверьте это, запустив в терминале which conda и which python. Если вы получаете что-то вроде ниже, вам хорошо здесь.

/anaconda3/bin/conda
/anaconda3/envs/<yourEnvName>/bin/python

Если вы получаете разные пути, возможно, ваш путь испорчен. откройте файл .bashrc и дважды проверьте строки, связанные с python и conda.

Как вариант, переустановите conda.

2. Отличная версия

У вас может быть проблема несовместимости версий/зависимостей. Мне кажется это маловероятным, так как visdom совместим с python 2.7 (я думаю), и вы явно используете python 3.5.2. Тем не менее, это может произойти, если вы используете несколько менеджеров пакетов. В настоящее время это встречается реже, но иногда случается. Попробуйте проверить это, запустив pip show visdom и/или conda search --reverse-dependency visdom или эквивалентный для вашего менеджера пакетов.

Если это действительно проблема, то я советую сначала обновить ваши пакеты, а если это не сработает, затем удалить visdom с помощью оригинального менеджера пакетов и попытаться установить его с другим менеджером пакетов.


Если все вышеперечисленное не помогло, начните исследовать свою проблему в новой среде. Можете ли вы повторить это в новой среде? (Не могу) Можете ли вы повторить это на другой машине? так далее...

Держите интернет в курсе вашей проблемы, так как мы могли бы помочь другим!

Ответ 4

используйте conda uninstall visdom и попробуйте установить его снова. conda install -c conda-forge visdom

Ответ 5

Это может быть проблема с разрешениями файловой системы. Это может произойти, если вы установили пакет, находясь под пользователем root. Попробуй запустить

sudo chmod -R a+rX /home/deeplearning/anaconda3/envs/

Отбросьте sudo если вы являетесь пользователем root на своем терминале VM.

Ответ 6

К сожалению, у меня нет решения "Сделайте именно это, чтобы решить вашу проблему", но я бы предложил следующие шаги. Многие из них кажутся очевидными, но я считаю, что при решении подобных проблем вы должны быть уверены в каждом шаге, прежде чем двигаться дальше.

  1. На хост-системе, в данном случае на вашей Ubuntu VM, установлено несколько версий python? Вы уверены, что используете версию, которую, по вашему мнению, используете? Вы проверили свою переменную пути? Вы должны быть уверены, что используете вашу установку conda.
  2. На хост-системе установлены разные версии conda?
  3. Похоже, что в активированной среде, которую вы проверили, пакет указан в conda. Но находится ли он в каталоге пакетов для вашей виртуальной среды? Один из способов проверить это - использовать команду find и указать базовый путь для вашей виртуальной среды.
  4. Попробуйте принудительно переустановить пакет.
  5. Попробуйте использовать pip вместо conda. Если ваша среда настроена правильно, pip должен установить пакеты по пути conda.

более отчаянные шаги

  1. Создайте новую виртуальную среду. Добавить пакеты по одному. Изучите, что меняется каждый пакет.
  2. Переустановите conda.
  3. Создайте новый экземпляр вашего VM.
  4. Сделайте экземпляр vm из другого изображения.
  5. Сделайте свой собственный имидж.

Это только один из способов решения проблемы. По возможности старайтесь избегать шагов 6-10, потому что они довольно сложны. Тем не менее, иногда это проблема с ВМ, а не с вами.