Я использую Ubuntu 14.04
. У меня есть сценарий, который зависит от pynotify
. Когда сценарий запускается за пределами любой виртуальной среды, он работает нормально (другие зависимости также установлены в глобальном масштабе), но если я запускаю один и тот же скрипт внутри любой виртуальной среды (там также установлены другие зависимости), это не сработает.
Тогда я думал, что я бы установил его на глобальном уровне раньше, но это не так. Я пробовал это (глобально):Не удалось импортировать pynotify в virtualenv
pip freeze | grep pynotify
Но, это не дало результата. Есть ли объяснения этому поведению?
Он работает. Но, разве это не противоречит тому, что должен делать виртуальный рабочий? Он использует все, что было установлено в глобальном масштабе, и какая помощь делает он? Я имею в виду, что без вен мы можем сделать то же самое, не так ли? Обычно мы создаем файл 'requirements.txt', используя' pip freeze' и обмениваемся зависимостями с другими, но в этом случае он будет содержать много вещей, которые не имеют отношения к этому проекту. Есть ли способ включить только то, что имеет отношение к требованиям? –
__ «Запуск virtualenv с опцией --no-site-packages не будет включать в себя пакеты, установленные во всем мире. Это может быть полезно для сохранения списка пакетов в случае, если ему нужно получить доступ позже. Это поведение по умолчанию для virtualenv 1.7 и более поздних версий. "__ Источник: http://docs.python-guide.org/en/latest/dev/virtualenvs/#other-notes –
virtualenv по умолчанию предоставит вам чистую среду без установленных пакетов и не будет используйте ваши глобально установленные пакеты. Если вы хотите pynotify в своем проекте, идея состоит в том, чтобы явно и отдельно устанавливать pynotify в этом проекте в чистой среде с помощью pip, не используя глобальные пакеты, уже установленные в системе. –