Как я могу устранить неполадки `--system-site-packages` VENV, не отражающие мою систему?

338
xtian

Я использую Arch Linux и хочу использовать виртуальные среды для установки только тех немногих пакетов PIP, которые я использую для конкретных проектов, продолжая использовать пакеты Arch для Python. Однако, когда я создаю новый VENV, который использует --system-site-packagesаргумент (для доступа к базовым пакетам Python Arch), новый VENV не является полным зеркалом среды, отличной от VENV.

Как я это проверял:

  1. pip freezeмоей текущей установки Python из пакетов Arch .

  2. Создана виртуальная среда, венв $mkvirtualenv --system-site-packages venv

  3. Создано второе pip freezeиз внутри активной venv

  4. Сравните, используя diff

Я ожидал, что разница будет такой же, но есть многочисленные различия.

Я считаю, что все Python и связанные пакеты были установлены сpacman . Я уверен, что все основные пакеты (iPython, Numpy, Pandas, Jupyter, Matplotlib и т. Д.) Были установлены с помощью менеджера пакетов Arch pacman. Поскольку вчера я не просто установил свою систему, вполне возможно, что со временем я использовал PIP для нескольких пакетов, но соблюдаю правило, которое я использую, чтобы использовать pacmanустановленные пакеты, чтобы воспользоваться преимуществами исправлений сообщества Arch. несовместимость (в отличие от некоторой комбинации пакетов Github, PiP и Arch).

Как я могу устранить проблему различных пакетов в моем VENV, используя --system-site-packagesаргумент?


НОТА. Этот вопрос может идти в неправильном направлении, если я неправильно понимаю, как --system-site-packagesработает аргумент. В этом случае должен возникнуть вопрос: почему --system-site-packagesаргумент не создает дублирующее зеркало пакетов Python моей системы?

1
Вы когда-нибудь понимали это? Вся эта система против пользовательского Python (и, честно говоря, Ruby и Node) всегда смущала меня до бесконечности ... rbellamy 7 лет назад 0
Я отправил сообщение на доску обсуждений Google для [virtual envwrapper] (https://goo.gl/1unRdp) и [Archlinux] (https://goo.gl/JvNE6L). Не очень интересен первый, и для меня суть второго ответа заключалась в использовании `pip`, а не менеджера пакетов дистрибутива. На мой взгляд, это предлагает просто переустановить необходимые пакеты для каждого проекта (аргумент «память дешевая»). Существует нулевой интерес к этой проблеме. Сожалею. Я просто путаюсь в этом. xtian 7 лет назад 0

0 ответов на вопрос

Похожие вопросы