Czy możliwe jest dodanie pakietów PyQt4/PySide na Virtualenv sandbox?
Używam Virtualenv z zyskiem na moim środowisku programistycznym z web.py
, simplejson
i innych pakietów zorientowanych na www.
Mam zamiar opracować prosty klient Pythona przy użyciu Qt do ponownego użycia niektórych Api opracowane z web.py.
Czy ktoś tutaj z powodzeniem zainstalował PyQt4 z Virtualenv?
Czy to możliwe?
Pobrałem wszystkie pliki binarne i zainstalowałem {[2] } globalnie w moim katalogu python2. 6.
If I don ' t use --no-site--packages
option, Virtualenv poprawnie zawiera PyQt4
w moim nowym Sandboxie, ale oczywiście ze wszystkimi globalnymi pakietami, których nie potrzebuję.
Czy istnieje czysty sposób na przygotowanie nowej piaskownicy z opcją --no-site--packages
, a następnie dodanie PyQt4
lub PySide
za pomocą pip
, easy_install
albo jakąś inną magiczną sztuczkę?
13 answers
Powinno wystarczyć utworzenie pustego virtualenv, a następnie skopiowanie do niego zawartości katalogów .../site-packages/PyQt4
.
Proponuję zainstalować PyQt4 raz globalnie, zrobić kopię katalogu, odinstalować go, a następnie użyć tej sztuczki, aby utworzyć VEs.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-25 22:17:40
Mam ten sam problem. Używam virtualenvwrapper, więc napisałem ten skrypt, aby stworzyć link do PyQt w każdym nowym środowisku wirtualnym. Może jest przydatna dla kogoś innego:
#!/bin/bash
# This hook is run after a new virtualenv is activated.
# ~/.virtualenvs/postmkvirtualenv
LIBS=( PyQt4 sip.so )
PYTHON_VERSION=python$(python -c "import sys; print (str(sys.version_info[0])+'.'+str(sys.version_info[1]))")
VAR=( $(which -a $PYTHON_VERSION) )
GET_PYTHON_LIB_CMD="from distutils.sysconfig import get_python_lib; print (get_python_lib())"
LIB_VIRTUALENV_PATH=$(python -c "$GET_PYTHON_LIB_CMD")
LIB_SYSTEM_PATH=$(${VAR[-1]} -c "$GET_PYTHON_LIB_CMD")
for LIB in ${LIBS[@]}
do
ln -s $LIB_SYSTEM_PATH/$LIB $LIB_VIRTUALENV_PATH/$LIB
done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-15 08:23:36
Linux debian, python 2.7:
- Zainstaluj python-qt4 globaly:
sudo apt-get install python-qt4
- Utwórz dowiązanie symboliczne PyQt4 do twojego wirtualnego env
ln -s /usr/lib/python2.7/dist-packages/PyQt4/ ~/.virtualenvs/myEnv/lib/python2.7/site-packages/
- Utwórz dowiązanie symboliczne sip.so do twojego wirtualnego env
ln -s /usr/lib/python2.7/dist-packages/sip.so ~/.virtualenvs/myEnv/lib/python2.7/site-packages/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-04 08:51:45
Dla tych, którzy chcą używać PyQt4 w Pythonie 3 virtualenv (na OSX) najpierw zainstaluj PyQt4 i SIP (ja użyję homebrew)
$ brew install python3
$ brew install sip --with-python3
$ brew install pyqt --with-python3
Następnie utwórz swoje wirtualne środowisko
$ virtualenv ...
Wreszcie symlink (Zmień wersje SIP, PyQt4 i Pythona dla tych zainstalowanych na twoim komputerze)
$ ln -s /usr/local/Cellar/sip/4.15.5/lib/python3.4/site-packages/*.* ~/{VIRTUALENVHOME}/{VIRTUALENVNAME}/lib/python3.4/site-packages/
$ ln -s /usr/local/Cellar/pyqt/4.10.4/lib/python3.4/site-packages/PyQt4/*.* ~/{VIRTUALENVHOME}/{VIRTUALENVNAME}/lib/python3.4/site-packages/PyQt4
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-01 10:56:45
Zapytałem czy jest możliwość zainstalowania PySide z virtualenv na irc.freenode.net # pyside kanał i dostał pozytywną odpowiedź z hugopl . Zastosowałem się więc do instrukcji z binariów PySide dla Microsoft Windows i zadziałało. Wyjście jest poniżej.
Z:\virtualenv\pyside>Scripts\activate.bat
(pyside) Z:\virtualenv\pyside>where python
Z:\virtualenv\pyside\Scripts\python.exe
(pyside) Z:\virtualenv\pyside>easy_install PySide
install_dir Z:\virtualenv\pyside\Lib\site-packages\
Searching for PySide
Reading http://pypi.python.org/simple/PySide/
Reading http://www.pyside.org
Reading http://www.pyside.org/files/pkg/
Best match: PySide 1.0.0beta1qt471
Downloading http://www.pyside.org/files/pkg/PySide-1.0.0beta1qt471.win32-py2.6.exe
Processing PySide-1.0.0beta1qt471.win32-py2.6.exe
Deleting c:\users\piotr\appdata\local\temp\easy_install-fvfa7e\PySide-1.0.0beta1qt471-py2.6-win32.egg.tmp\EGG-INFO\scripts\py
ide-uic-script.py
Deleting c:\users\piotr\appdata\local\temp\easy_install-fvfa7e\PySide-1.0.0beta1qt471-py2.6-win32.egg.tmp\EGG-INFO\scripts\py
ide-uic.exe
creating 'c:\users\piotr\appdata\local\temp\easy_install-fvfa7e\PySide-1.0.0beta1qt471-py2.6-win32.egg' and adding 'c:\users\
iotr\appdata\local\temp\easy_install-fvfa7e\PySide-1.0.0beta1qt471-py2.6-win32.egg.tmp' to it
creating z:\virtualenv\pyside\lib\site-packages\PySide-1.0.0beta1qt471-py2.6-win32.egg
Extracting PySide-1.0.0beta1qt471-py2.6-win32.egg to z:\virtualenv\pyside\lib\site-packages
Adding PySide 1.0.0beta1qt471 to easy-install.pth file
Installing pyside-uic-script.pyc script to Z:\virtualenv\pyside\Scripts
Installing pyside_postinstall.py script to Z:\virtualenv\pyside\Scripts
Installing pyside_postinstall.pyc script to Z:\virtualenv\pyside\Scripts
Installing pyside-uic-script.py script to Z:\virtualenv\pyside\Scripts
Installing pyside-uic.exe script to Z:\virtualenv\pyside\Scripts
Installed z:\virtualenv\pyside\lib\site-packages\pyside-1.0.0beta1qt471-py2.6-win32.egg
Processing dependencies for PySide
Finished processing dependencies for PySide
(pyside) Z:\virtualenv\pyside>python Scripts\pyside_postinstall.py -install
Generating file Z:\virtualenv\pyside\Scripts\qt.conf...
The PySide extensions were successfully installed.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-22 14:59:30
Załóżmy, że Twój virtualenv nazywa się myProject i używasz virtualenvwrapper. Zakłada się również platformę Unix.
$ workon myProject
$ pip install --no-install SIP
$ pip install --no-install PyQt
$ cd ~/.virtualenvs/myProject/build/SIP
$ python configure.py
$ make
$ make install
$ cd ~/.virtualenvs/myProject/build/PyQt
$ python configure.py
$ make
$ make install
$ cd && rm -rf ~/.virtualenvs/myProject/build # Optional.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-07 07:17:57
Najprostszym sposobem jest zainstalowanie tego : vext.pyqt4
To doda pojedynczy pakiet systemowy PyQt4
do twojego virtualenv.
Ubuntu 16.04 użycie:
sudo apt install python3-pyqt4
mkvirtualenv --python=python3.5 venv
pip install --no-use-wheel vext.pyqt4
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-17 02:55:20
Dla PySide 1.2.1 i Ubuntu 12.4
Instaluj Kompilatory, związane z Qt, źródła Pythona
sudo apt-get install cmake qt4-qmake qt-sdk python-dev
Utwórz virt ENV za pomocą virtualenvwrapper
Bądź gotowy do kompilacji Qt (~30 min)
$ mkvirtualenv ve_name
(ve_name)$ pip install PySide
Test
$ python -c "from PyQt4 import QtCore; print QtCore.PYQT_VERSION_STR"
4.9.1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-28 18:52:01
Jeśli zainstalowałeś pyqt przez brew na Macu (konkretnie ja jestem na Mavericksie):
ln -s /usr/local/Cellar/sip/4.15.2/lib/python2.7/site-packages/*.* ~/{VIRTUALENVHOME}/{VIRTUALENVNAME}/lib/python2.7/site-packages
ln -s /usr/local/Cellar/pyqt/4.10.3/lib/python2.7/site-packages/PyQt4/ ~/{VIRTUALENVHOME}/{VIRTUALENVNAME}/lib/python2.7/site-packages/PyQt4
pip install pygments pyzmq
Oczywiście numery katalogów wersji mogą się z czasem zmieniać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-14 16:39:42
Zadziałało dla mnie kopiowanie /PyQt4/
i sip.x86_64-linux-gnu.so
z /usr/lib/python2.7/dist-packages
na <VIRTUALENV>/lib/python2.7/site-packages
i zmiana praw własności do tych skopiowanych plików (ponieważ kopie były własnością roota).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-17 16:27:52
Rozszerzenie odpowiedzi Aarona Digulli, użycie Gita do poprawienia listy plików może być bardzo przydatne. Zazwyczaj robię coś takiego (z powłoki msysGit):
# Create temp git repo for the pristine Python installation
$ cd /c/Python27
$ git init -q
$ git add .
$ git commit -qm "Initial commit"
Następnie uruchom instalator dla PyQt4 (lub cokolwiek innego). Następnie wykonaj tarball z plików dodanych przez instalator i usuń temp Git repo, w następujący sposób:
# 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
Następnie możesz uruchomić deinstalator PyQt4 (jeśli nie chcesz zaśmiecać swojego Pythona systemowego) i po prostu rozpakować pyqt4.tar.bz2
do folderu virtualenv. Jeśli jest to świetny sposób na uzyskanie wszystkich zainstalowanych plików PyQt4.
Uwaga : instalacja PyQt4 przy użyciu spakowanego instalatora również instaluje SIP. Jeśli rzeczywiście chcesz użyć tego SIP do tworzenia powiązań dla własnego kodu C/C++ wewnątrz virtualenv, będziesz chciał zmodyfikować ścieżki w pliku sipconfig.py
po skopiowaniu go. W przeciwnym razie system budowania SIP nadal będzie wskazywał na folder Pythona systemowego (np.]} lub cokolwiek), co nie zadziała, jeśli usuniesz stamtąd wszystkie pliki zainstalowane przez PyQt4. (Jeśli nie masz zamiaru używać SIP samodzielnie, prawdopodobnie możesz to pominąć.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-19 21:19:48
Dowiązania symboliczne mogą działać.
Używam Linuksa (Debian / sid), Pythona 3.4, PySide, virtualenv i PyCharm (IDE), ale te same instrukcje będą działać dla każdego pakietu i środowiska programistycznego.
Dowiązania symboliczne między /usr/lib/python3/dist-packages/PySide/
$VIRTUAL_ENV/lib/python3.4/site-packages/PySide/
pracuj dla mnie.
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
Co ciekawe, jeśli łączę symbolicznie tylko katalog PySide
, to nie działa. Muszę dowiązać symbolicznie każdy plik w katalogu. To może być ograniczenie PyCharm (moje IDE) -- Nie wiem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-17 02:56:02
Spróbuj tego: pip install python-qt5
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-01 16:22:10