Как мне разрешить пипс внутри anaconda3 venv, если для пипа требуется virtualenv? - PullRequest
0 голосов
/ 19 января 2019

Я только что перестроил свою среду Mac, используя учебники здесь:

https://hackercodex.com/guide/mac-development-configuration/ и здесь: https://hackercodex.com/guide/python-development-environment-on-mac-osx/

Я хочу потребовать virtualenv для пункта, и установил это, открыв:

vim ~/Library/Application\ Support/pip/pip.conf

и добавление:

[install]
require-virtualenv = true

[uninstall]
require-virtualenv = true

Затем я последовал руководству по настройке ноутбуков Jupyter с tenorflow, потому что я пытаюсь пройти курс удэми по машинному обучению, который требует обоих: https://medium.com/@margaretmz/anaconda-jupyter-notebook-tensorflow-and-keras-b91f381405f8

В этом руководстве упоминается, что вы должны использовать pip install вместо conda install для тензорного потока, поскольку пакет conda официально не поддерживается.

Я могу установить pip на conda, просто выполнив:

conda install pip

Но когда я пытаюсь запустить:

pip3 install tensorflow

Я получаю ошибку:

«Не удалось найти активированного virtualenv (обязательно).»

Я знаю, почему я получаю эту ошибку, я просто не знаю, как изменить свой код, чтобы ТАКЖЕ принять использование pip & pip3 внутри anaconda venvs.

Моя папка anaconda3 находится внутри моей папки Virtualenvs вместе со всеми моими другими виртуальными средами.

Я попытался временно отключить ограничение, определив новую функцию в ~ / .bashrc:

cpip(){
PIP_REQUIRE_VIRTUALENV="0" pip3 "$@"
}

и использовать его вместо этого, без удачи, что неудивительно

Я думаю, что проблема может быть здесь, внутри моего bash_profile:

# How to Set Up Mac For Dev:
# https://hackercodex.com/guide/mac-development-configuration/
# Ensure user-installed binaries take precedence
export PATH=/usr/local/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc


# Activate Bash Completion:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
    source $(brew --prefix)/etc/bash_completion
fi


# Toggle for installing global packages:
gpip(){
   PIP_REQUIRE_VIRTUALENV="0" pip3 "$@"
}
# Toggle for installing conda packages:
cpip(){
   PIP_REQUIRE_VIRTUALENV="0" pip3 "$@"
}
# Be sure to run "source ~/.bash_profile after toggle for changes to
take effect.
# Run "gpip install" (i.e. "gpip install --upgrade pip setuptools
wheel virtualenv")


# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false
'/Users/erikhayton/Virtualenvs/anaconda3/bin/conda' shell.bash hook
2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f
"/Users/erikhayton/Virtualenvs/anaconda3/etc/profile.d/conda.sh" ];
then
        .
"/Users/erikhayton/Virtualenvs/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export
PATH="/Users/erikhayton/Virtualenvs/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

Я хочу иметь возможность использовать pip (& pip3, pip2) в обоих (и только в) активированных anaconda3 'env's и virtualenvs.

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Когда вы conda install pip, новый каталог помещается в директорию bin/ вашего anaconda virtualenv.Каждый пункт знает, находится ли / в каком virtualenv он находится, и каждый пункт устанавливает пакеты только внутри своего собственного virtualenv.Вы можете запустить его как /Users/erikhayton/Virtualenvs/anaconda3/bin/pip install tenserflow

Вы можете узнать, где находится pip3, запустив which pip3.

Когда вы activate virtualenv, переменные окружения в вашей оболочке изменяются,Каталог bin/ virtualenv находится в вашем PATH.Если вы запустите /Users/erikhayton/Virtualenvs/anaconda3/bin/activate, а затем which pip3, вы увидите другой путь.

См. Также Использование Pip для установки пакетов в среду Anaconda

0 голосов
/ 19 января 2019

Обычно, когда вы используете виртуальные среды, вам нужно сначала activate их использовать, прежде чем использовать их.В какой-то момент вам понадобится запустить команду для создания виртуальной среды:

virtualenv awesome_virtualenv

Затем, чтобы сделать ее активной:

cd ~/Virtualenvs/awesome_virtualenv
source bin/activate
pip3 install tensorflow  # this will install TensorFlow into your awesome_virtualenv

Вы можете создать столько виртуальных средпо вашему желанию и установите различные наборы библиотек в каждом.

...