Разрешение путей 'conda', 'sudo' и 'global' python - PullRequest
0 голосов
/ 25 марта 2020

Я любитель, когда речь идет как о conda, так и venvs в целом (а также о s / o), поэтому я надеялся, что кто-нибудь сможет дать мне объяснение, как справляться с этими тремя путями.

Пример Conda / Global

Я нахожусь в среде conda и пытаюсь установить тензор и его привязки python. Он доступен в виде пакета debian, поэтому я его прошёл. Я предполагаю, что это установит его глобально, и мой conda venv сможет «увидеть» его, но это не так. Он доступен только один раз, чтобы отключить мою среду. Как включить использование этого пакета из моего conda env?

Пример Conda / Sudo

Я нахожусь в conda env и wi sh для установки пакета python недоступен как пакет Debian, а скорее как setup.py. Я sh, чтобы установить его глобально (доступно для всех сред, виртуальных и не) и запустить его setup.py с 'sudo python'. Это разрешает другой путь, не видимый в моей виртуальной среде или локальном пути. Точная противоположность цели. Как сделать этот пакет видимым для моего conda venv?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 25 марта 2020

Вы смешиваете множество систем управления упаковкой (apt, conda, pip). Кроме того, ваши вопросы побеждают цель использования виртуальных сред. Вы должны использовать sudo только при установке пакетов Python, когда точно знаете, что делаете.

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


Я собираюсь написать python3. Для вас это может называться py, py3 или python. Вы можете получить PATH вашей python3 команды с which python3 на Linux и where python3 на Windows.

при установке пакетов. Они помещены в одну из папок, перечисленных в python3 -m site. Вы можете активировать свою виртуальную среду и увидеть, что папки разные.

Вы увидите, что ваш текущий рабочий каталог автоматически добавляется. Вы можете видеть, что у каждого пользователя есть своя собственная папка site-packages и что есть какая-то общая папка /usr/lib/python..., которая является частью вашего Python интерпретатора. Они содержат основные функции c, и обычно вы не устанавливаете в них пользовательские пакеты.

Как вы можете установить модули Python в пользовательский путь?
Я связываю другой вопрос StackOverflow, так как он варьируется. Установить пакет Python в другой каталог, используя pip?
Пожалуйста, проведите собственное исследование с Conda.

Как я могу заставить мою программу использовать Python Модули, определенные в новом пути?
Использовать PYTHONPATH.
Когда вы выполните python, он будет искать все модули, перечисленные в папках в python -m site. Вы можете добавить другую папку, например, с помощью: PYTHONPATH=/home/ python -m site


Я опустил много информации, и это не вики или что-то подобное. Это всего лишь ответ, который приводит к решению, но он не очень приятный.

...