Скажите Atom + Hydrogen поискать пакеты в виртуальной среде.

Я совершенно новичок в этом. Я установил Python3 и Atom и установил Hydrogen для Atom, поэтому я могу запускать каждую строку моего кода и видеть результат.

Я создал виртуальную среду и добавил в нее пакеты.

Моя проблема в том, что внутри моего файла Atom .py, когда я, например, говорю import numpy as np, он сообщает мне, что модуль не найден. Поэтому я думаю, что он смотрит в какое-то место по умолчанию, а не в мою виртуальную среду. Это имеет смысл, поскольку я не знаю, как сказать ему заглянуть внутрь виртуальной среды.

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

Может ли кто-нибудь сказать мне, как сказать python, чтобы он выглядел в определенной виртуальной среде на время разработки / выполнения файла .py?


person lara    schedule 04.08.2020    source источник


Ответы (1)


Для нашей цели здесь виртуальные среды просто меняют путь поиска вашего интерпретатора.

Поэтому, если мы хотим выполнить поиск в данной виртуальной среде, мы можем просто добавить путь этой среды к нашему пути поиска, что вы можете сделать в python, используя

import sys
sys.path.append('/path/to/virtualenv')

Путь к вашей виртуальной среде зависит от того, как вы ее настроили, но обычно они хранятся в подпапке вашего домашнего каталога с именем .virtualenvs, поэтому это, вероятно, будет выглядеть так:

import sys
sys.path.append('/home/username/.virtualenvs/EnvName/')

# rest of code

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

person Johannes Ackermann    schedule 04.08.2020
comment
Хорошо, так что это сработало, единственное, что мои пакеты были в папке /home/username/virtualEnvName/lib/python3.6/site-packages, и мне пришлось добавить именно эту папку, а не более высокий уровень / home / username / virtualEnvName . Огромное спасибо. - person lara; 04.08.2020
comment
Странно, я тестировал его на своей системе, и простого добавления имени virtualEnv к пути было достаточно. В любом случае рад, что это сработало :) - person Johannes Ackermann; 04.08.2020