[python] Эта статья поможет вам понять и решить, как активировать виртуальную среду conda, пакет, установленный pip, не помещается в виртуальную среду.

Слишком долго не читать версию

Проблема с переменной окружения.Если вы проверите переменную окружения, то обнаружите, что перед адресом вашего виртуального окружения есть другие адреса, такие как /home/xxx/.local/bin: и т. д., и там по этому адресу находятся такие программы, как pip и python. .
Самый простой способ: удалить и bin, и lib в /home/xxx/.local.
Не хотите удалять: измените переменные окружения

vim ~/.profile

закомментировал эти строки
вставьте сюда описание изображения

1. Знайте переменную окружения (PATH)

Чтобы решить эту проблему, мы должны сначала понять переменную среды.Переменная среды PATH представляет собой список, который содержит адреса некоторых программ по порядку (обычно xxx/bin).После добавления переменной среды система может распознать команду и введите его в любом каталоге.Выполните программу, соответствующую команде. Роль переменных среды состоит в том, чтобы сообщить системе, что эти места можно найти.

Порядок системного поиска: текущий каталог - список системных переменных по порядку - список переменных среды по порядку

2. Просмотрите текущие переменные окружения системы

echo $PATH
  • Как правило, после установки anaconda, после входа в систему, это базовая среда.Проверив ПУТЬ, вы можете обнаружить, что начало ПУТИ - /xxx/anaconda3/bin:/xxx/anaconda3/condabin
  • После того, как вы активируете свою виртуальную среду yourEnv, затем проверьте PATH, =, вы можете обнаружить, что начало PATH становится /xxx/anaconda3/envs/yourEnv/bin::/xxx/anaconda3/condabin.
  • Это также принцип переключения сред conda, который заключается в изменении переменных среды.
  • Также просто создать новую среду в conda, то есть создать папку с именем вашего пользовательского имени среды в envs, а затем скопировать или загрузить некоторые базовые пакеты и поместить их в нее.

Например мой:

/work/Users/fanxin/anaconda3/bin:/work/Users/fanxin/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/ bin:/usr/games:/usr/local/games:/usr/local/cuda/bin:/opt/pycharm-community-2020.2.3/bin:/snap/bin

Почему этот порядок? При входе в систему Linux и запуске оболочки bash по умолчанию bash будет искать настройки переменных среды в нескольких файлах, которые вместе можно назвать файлами системной среды. следует:

Оболочка входа в систему с учетной записью и паролем -->/etc/profile (глобальный файл G1) -->/etc/profile.d/ (глобальный каталог сценариев F1) --> ~/.profile (пользовательский файл U1) --> ~/ .bashrc (пользовательский файл U2) ——>/etc/bash.bashrc (глобальный файл G2)

Справочная статья: [linux] Инициализация переменных среды Linux и порядок, в котором соответствующие файлы вступают в силу

3. Решить проблему, что пакет, установленный pip, не помещается в виртуальную среду.

3.1 Описание проблемы и анализ

Иногда после того, как conda активирует виртуальную среду, пакет установки pip обнаруживает, что: Требование уже выполнено: она есть в папке, но ее нет в папке виртуальной среды.

pip show package_name #查看包的信息,包括安装位置。
pip -V # 查看当前pip的版本,地址

В это время, если вы проверите переменные среды, вы должны обнаружить, что перед адресом вашей виртуальной среды есть другие адреса, такие как /home/xxx/.local/bin: и т. д., например:

/home/fanxin/.local/bin:/opt/gurobi1000/linux64/bin: /work/Users/fanxin/anaconda3/envs/subdivnet/bin :/work/Users/fanxin/anaconda3/condabin:/usr/local/ sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/cuda/bin:/opt/pycharm -сообщество-2020.2.3/бен:/снап/бен

И на этом адресе есть такие программы, как pip и python. Тогда приоритет pip здесь будет выше, чем приоритет pip в вашей виртуальной среде, поэтому при выполнении установочного пакета pip по умолчанию не запускается pip виртуального окружения, из-за чего установленный pip пакет не ставится в виртуальной среде.

  • Почему впереди другие адреса?Это связано с порядком выполнения упомянутых выше файлов окружения. Например, адрес /home/xxx/.local/bin добавляется при выполнении ~/.profile.

вставьте сюда описание изображения

3.2 Решения

1: Самый простой способ — удалить и bin, и lib в /home/xxx/.local.

2: изменить файл переменной среды

Например, если появится адрес /home/xxx/.local/bin, то

vim ~/.profile

Закомментируйте эти строки.Для
вставьте сюда описание изображения
других ненормальных адресов необходимо проверить по порядку выполнения файлов окружения и удалить проблемные части.

справочная статья

После того, как anaconda создаст новую виртуальную среду, пипс всегда находится в пути пипса глобального Python (пипс виртуальной среды не может быть расположен)

Supongo que te gusta

Origin blog.csdn.net/weixin_43693967/article/details/128351766
Recomendado
Clasificación