Рубрики
Без рубрики

Conda и дело с противоречивым Python (ы) в вашей системе

Что вы будете делать с противоречивыми змеями. Tagged с помощью Python, Conda, Environments, Linux.

(Отказ от ответственности: говорит о системе Unix (Me On Linux) здесь)

Я прошел курс по робототехнике, используя Операционная система робота (АФК). Однако я всегда держу Miniconda3 Установка для обработки моих приключений по науке о данных и соответствующих зависимостей. Чтобы уточнить, он устанавливает Conda , менеджер пакетов общего назначения – хотя на самом деле я использую его только для установки библиотек Python – и Python 3.6 Анкет

Что происходит, так это то, что ROS использует System Python – то есть Python 2.7 Анкет Проблема возникает, если вы устанавливаете свой «путь к питону», чтобы по умолчанию в отношении проблемы Miniconda3 , процедура, которая автоматизирована, когда вы признаете, что Miniconda3 Установщик добавляет следующую строку к вашему .bashrc файл.

export PATH="/home/user/miniconda3/bin:$PATH"

Другими словами, каждый раз, когда вы открываете оболочку, ваша система устанавливает интерпретатор Python на систему Miniconda3 , который является версией 3.6. Таким образом, каждый раз, когда я запускал что -то из ROS, это сбоялось с запуска сценариев Python, которые были написаны в версии 2.7, а именно из -за различий в синтаксисе на Печать командование между двумя версиями.

После прочтения Conda’s Документация по предмету , Я решил проверить свою способность реализовать свое предложенное решение, то есть:

  • Удалить Miniconda3 из ДОРОЖКА
  • Создать символики к трем компонентам Miniconda3

    • конда
    • активировать
    • деактивировать
  • Добавьте эти символики в ДОРОЖКА

Удалить Miniconda3 из Путь , нужно просто прокомментировать или удалить вышеупомянутую строку в .bashrc Файл, используя текстовый редактор, как Нано Например.

Теперь, когда это сделано, давайте создадим символики Анкет Симпиль, для целей этого поста, похожа на указатель на какой -то другой исполняемый файл и будет функционировать в качестве команды. Я создал определенную папку ( .symlinks ) только для этого.

mkdir .symlinks
cd .symlinks

Теперь, когда мы в .symlinks Папка, давайте на самом деле создадим символики.

ln -s /home/user/miniconda3/bin/conda conda
ln -s /home/user/miniconda3/bin/activate activate
ln -s /home/user/miniconda3/bin/deactivate deactivate

Чтобы убедиться, что они были созданы, запустите лауреат -l (списки файлов) в .symlinks Папка, вы сможете увидеть указатели.

lrwxrwxrwx 1 user user 34 Nov  9 14:08 activate -> /home/user/miniconda3/bin/activate
lrwxrwxrwx 1 user user 31 Nov  9 14:10 conda -> /home/user/miniconda3/bin/conda
lrwxrwxrwx 1 user user 36 Nov  9 14:08 deactivate -> /home/user/miniconda3/bin/deactivate

Наконец, мы добавляем .symlinks папка на путь. Но мы хотим, чтобы эти команды Symlink были автоматически доступны каждый раз, когда мы открываем новую оболочку. Ответ состоит в том, чтобы «добавить» их в сценарий, который запускается каждый раз, когда открывается оболочка: .bashrc файл. Итак, добавьте эту строку в указанный файл.

export PATH="/home/user/.symlinks:$PATH"

Чтобы изменения вступили в силу, вы можете закрыть и открыть терминал, но почувствовать себя профессионалом, не выполняя этого движения, запустите Источник .bashrc .

Теперь, если вы запустите Python --версия Вы получите систему Python обратно.

user@ryzen:~$ python --version
Python 2.7.12

Если вы хотите использовать Python 3.6 из корня Conda Environment В делать

user@ryzen:~$ source activate root
(root) user@ryzen:~$ python --version
Python 3.6.3 :: Anaconda, Inc.

Как вы можете видеть из Python --версия Немного, мы сейчас используем интерпретатор 3.6. Если я хочу активировать среду, в которую я установил D ata S Библиотеки Cience 1 Я бы бежал Источник активируется дюймовый .

Теперь, когда новый интерпретатор активирован, вы можете запустить сценарии, которые были написаны для этого переводчика. В любом случае, если вам нужно вернуться к переводчику системы (2.7) на текущей оболочке, то бежать

(root) user@ryzen:~$ source deactivate
user@ryzen:~$ python --version
Python 2.7.12

Как видите, мы вернулись к 2.7. Таким образом, вы можете запустить программное обеспечение, которое запускается в этой версии без проблем, и переключаться на ваши выходки 3.6, когда захотите. 😁

Хорошего. 😁

1 : Я думаю конда не позволяет устанавливать пакеты для корни и заставляет пользователей создавать свои собственные среды, чтобы стимулировать передовую практику. Не то чтобы я проверил, просто личный опыт.

Оригинал: “https://dev.to/bgalvao/conda–dealing-with-conflicting-pythons-in-your-system-62n”