Можно ли добавить пакеты PyQt4 / PySide в изолированную программную среду Virtualenv? - PullRequest
59 голосов
/ 26 декабря 2009

Я использую Virtualenv с прибылью в моей среде разработки с web.py, simplejson и другими веб-ориентированными пакетами.
Я собираюсь разработать простой Python-клиент с использованием Qt для повторного использования некоторых API, разработанных с помощью web.py.

Кто-нибудь здесь успешно установил PyQt4 с Virtualenv?
Возможно ли это?

Я скачал все двоичные файлы и в моем каталоге python2.6 глобально установлен PyQt4.
Если я не использую опцию --no-site--packages, Virtualenv правильно включит PyQt4 в мою новую песочницу, но, очевидно, со всеми глобальными пакетами, которые мне не нужны.

Есть ли чистый способ подготовить новую песочницу с опцией --no-site--packages, а затем добавить PyQt4 или PySide, используя pip, easy_install или какой-нибудь другой магический трюк?

Ответы [ 13 ]

2 голосов
/ 02 ноября 2014

Символические ссылки могут работать.

Я использую Linux (Debian / sid), python 3.4, PySide, virtualenv и PyCharm (IDE), но эти же инструкции будут работать для любого пакета и среды разработки.

Символические ссылки между /usr/lib/python3/dist-packages/PySide/ $VIRTUAL_ENV/lib/python3.4/site-packages/PySide/ работают на меня.

cd $VIRTUAL_ENV/lib/python3.4/site-packages/
mkdir PySide
cd PySide`
for x in /usr/lib/python3/dist-packages/PySide/* ; do ln -s $x ; done

Интересно, что если я символически связываю только каталог PySide, он не работает. Мне нужно символическую ссылку на каждый файл в каталоге. Это может быть ограничением PyCharm (моей IDE) - я не знаю.

2 голосов
/ 17 ноября 2011

Расширяя ответ Аарона Дигуллы, использование git для получения правильного списка файлов может быть очень удобным. Я обычно делаю что-то вроде этого (из оболочки msysGit):

# Create temp git repo for the pristine Python installation
$ cd /c/Python27
$ git init -q
$ git add .
$ git commit -qm "Initial commit"

Затем запустите установщик для PyQt4 (или любого другого). После этого создайте архив из файлов, добавленных установщиком, и удалите временное хранилище, как указано ниже:

# Stage the PyQt4-installed files and feed a list of their names to tar
# (note that there's no need to actually commit them)
$ git add --all
$ git diff --cached --name-only | tar -jcf pyqt4.tar.bz2 --files-from=-
$ rm -rf .git

Затем вы можете запустить деинсталлятор PyQt4 (если вы не хотите загромождать ваш системный Python) и просто распаковать pyqt4.tar.bz2 в вашу папку virtualenv. Если вы уже знакомы с использованием git, это отличный способ убедиться, что вы получаете все установленные PyQt4 файлы.

ПРИМЕЧАНИЕ : при установке PyQt4 с помощью упакованного установщика также устанавливается SIP. Если вы действительно хотите использовать этот SIP для создания привязок для вашего собственного кода C / C ++ внутри вашего virtualenv, вы захотите изменить пути в файле sipconfig.py после его копирования. В противном случае система сборки SIP будет по-прежнему указывать на системную папку Python (например, C:\Python32 или любую другую), которая не будет работать, если вы удалите все установленные с помощью PyQt4 файлы. (Если вы не собираетесь использовать SIP самостоятельно, вы можете пропустить это.)

0 голосов
/ 01 июля 2017

Попробуйте это: pip install python-qt5

...