Conda: установка локального пакета разработки в единую среду conda

если бы я использовал virtualenv, я бы активировал виртуальную среду моего проекта, а затем установил пакет, который я разрабатываю в режиме разработки. Что-то вроде следующего:

workon superbad
pip install -e fnawesome

Это позволяет мой пакет fnawesome для доступа с любыми обновлениями кода в my superbad виртуальной среде. Если я переключусь на любую другую среду, включая среду по умолчанию,superbad id недоступен.

как люди делают подобные установки с помощью conda?

3 ответов


вы можете настроить список пакетов по умолчанию, которые будут установлены в любую среду conda автоматически

conda config --add create_default_packages pip --add create_default_packages ipython

сделает так, что conda create всегда будет включать в себя pip и ipython в новых средах (эта команда такая же, как добавление

create_default_packages:
  - ipython
  - pip

на ).

чтобы создать среду без них, используйте conda create --no-default-packages.


хорошо, я понял проблему, стоящую за вопросом.

Если вы создаете среду conda, обязательно включите pip и ipython. В противном случае он не будет настраивать путь, указывающий на конкретные версии этих утилит для среды.

так:

conda create -n superbad scikit-learn
source activate superbad
pip install -e fnawesome  # (installs in default env b/c pip is global pip)
ipython  # runs global ipython with access to global site packages
python # runs the environment's python with no access to fnawesome

это работает, как ожидалось:

conda create -n superbad scikit-learn pip ipython
source activate superbad
pip install -e fnawesome  # installing into superbad site packages
ipython  # runs superbad ipython
python  # runs the environment's python with access to fnawesome
source deactivate
ipython # no access to fnawesome

попробуйте это, укажите виртуальную среду при установке пакета python:

conda install -n superbad fnawesome