Может ли virtualenv включать необходимые пакеты проекта из пакетов сайта - PullRequest
0 голосов
/ 29 марта 2019

Выполнение командной строки:

virtualenv --system-site-packages venv

Я ожидаю, что папка venv venv\Lib\site-packages будет содержать всю необходимую библиотеку из проектов, расположенных в: C:\Users\XXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\

Но этоне так, только некоторые из них установлены.

Пример, моя программа в настоящее время использует pdfminer, который находится в

C:\Users\XXXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\

Я хочу, чтобы он был включен вvenv\Lib\site-packages но это не копируется.

Любой совет?

Ответы [ 3 ]

0 голосов
/ 07 мая 2019

Среда virtualenv такая же, как если бы вы только что установили новую версию Python.В нем нет пакетов, кроме стандартных пакетов, поставляемых с Python.Если вам нужны другие пакеты, вы должны установить их с помощью 'pip' или, как вы бы это делали, с используемой вами версией Python.

В общем, просто выполните pip install <packagename>. * 1004.*

Если вам часто хочется создать virtualenvs со стандартным набором базовых пакетов, то соберите файл require.txt, в котором перечислены все пакеты, которые вы хотите установить в качестве базы, и выполните pip install -r requirements.txt внутри новогоvirtualenv, сразу после того, как вы его создадите.

Одна хорошая вещь в virtualenv - это то, что он весь ваш.Ваш пользователь владеет им на 100%, в отличие от базовой версии Python, которая принадлежит системе.Чтобы установить новые пакеты в базовую версию Python, вам часто нужно иметь root-права (привилегии sudo).С virtualenvs вам не нужны специальные разрешения (на самом деле, вы все облажаетесь, если вы используете sudo в virtualenv) для установки всех пакетов, которые вы хотите.Все, что вы делаете, живет в вашем собственном домашнем каталоге.Еще одна приятная вещь: когда вы закончите с virtualenv, вы просто выбрасываете корневой каталог, в котором он находится.

0 голосов
/ 07 мая 2019

Если не обязательно использовать virtualenv, я бы предложил пойти с Анакондой. Это в значительной степени поможет вашей заботе.

Conda как менеджер пакетов поможет вам найти и установить пакеты. По умолчанию уже установлено несколько пакетов, чтобы быстро настроить ваш проект. Чтобы проверить список пакетов, установленных в терминале, введите: conda list для получения пакетов, установленных с помощью conda.

Если вам нужен пакет, который требует другой версии Python, вам не нужно переключаться на другой менеджер среды, потому что conda также является менеджером среды.

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

0 голосов
/ 29 марта 2019

--system-site-packages не копирует пакеты, он только позволяет python из virtualenv получать доступ к пакетам в C:\Users\XXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\.

Нет способа скопировать пакеты, поскольку они могут зависеть от их установочного каталога.Если вам нужны эти пакеты в virtualenv, не используйте --system-site-packages и установите все пакеты в virtualenv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...