することはできPyQt4/PySideパッケージにVirtualenvサンドボックス?
-
21-09-2019 - |
質問
を使用してい Virtualenv 利益自分の開発環境 web.py
, simplejson
アジャイルプロジェクト指向のパッケージ。
私は開発を簡単にpythonを使ってクライアントQtの再利用は一部のApiの開発web.py.
なんたん設置されPyQt4とVirtualenv?
高校を卒業したばかりです。
私はダウンロードのすべてのバイナリとして PyQt4
設置され世界的に自分のpython2.6クリックします。
場合に利用しない --no-site--packages
オプションVirtualenv正を含む PyQt4
私の新しいサンドボックスが明らかにし、すべてのグローバルパッケージがない。
あるクリーンとして新たなサンドボックス付 --no-site--packages
オプションを追加してく PyQt4
または PySide
を使用 pip
, easy_install
その他のマトリック?
解決
空のvirtualenvのを作成するのに十分でなければならないし、その後ます。
それに.../site-packages/PyQt4
ディレクトリの内容をコピー
私は一度グローバルPyQt4をインストールすることをお勧め、ディレクトリのコピーを作成し、それをアンインストールして仮想環境を作成するには、このトリックを使用します。
他のヒント
私は同じ問題を抱えています。私はすべての新しい仮想環境でのPyQtへのリンクを作成するには、このスクリプトを書いたので、私は、virtualenvwrapperを使用しています。たぶん他の誰かのために便利です。
#!/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
要旨のとLinuxのdebianではなく、python2.7:
- イpython-qt4globaly:
sudo apt-get install python-qt4
- をシンボリックリンクのPyQt4をバーチャル環境
ln -s /usr/lib/python2.7/dist-packages/PyQt4/ ~/.virtualenvs/myEnv/lib/python2.7/site-packages/
- をシンボリックリンクのsip.なお仮想環境
ln -s /usr/lib/python2.7/dist-packages/sip.so ~/.virtualenvs/myEnv/lib/python2.7/site-packages/
(OSX上)のPython 3 virtualenvの中PyQt4を使用したい人にとっては、最初PyQt4とSIP(私が自作を使用します)。
をインストール$ brew install python3
$ brew install sip --with-python3
$ brew install pyqt --with-python3
そして、
あなたの仮想環境を作成します$ virtualenv ...
最後にシンボリックリンク(あなたのマシンにインストールされているもののためにSIP、PyQt4とPythonのバージョンを変更)
$ 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
私はそれがirc.freenode.net #pysideチャンネルにvirtualenvの内からPySideをインストールすることは可能だかどうか尋ねとのhugopl のから肯定的な回答を得ました。私は、Microsoft Windows の PySideバイナリからの指示に従った、それが働いていたので。出力は以下の通りです。
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.
レッツは、あなたのvirtualenvのはMyProjectと命名されていて、virtualenvwrapperを使用していると仮定します。 A 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.
最も簡単な方法は、これをインストールすることです
これはあなたのvirtualenvのに単一のシステムPyQt4
パッケージを追加します。
Ubuntuの16.04用法ます:
sudo apt install python3-pyqt4
mkvirtualenv --python=python3.5 venv
pip install --no-use-wheel vext.pyqt4
PySide 1.2.1とUbuntuの場合12.4
コンパイラ、Qtは関連、Pythonのソース
をインストールします。sudo apt-get install cmake qt4-qmake qt-sdk python-dev
作成はvirt ENV withvirtualenvwrapper
のQt(〜30分)をコンパイルするための準備ができている。
$ mkvirtualenv ve_name
(ve_name)$ pip install PySide
テスト
$ python -c "from PyQt4 import QtCore; print QtCore.PYQT_VERSION_STR"
4.9.1
あなたはマック(特に私はマーベリックスによ)に醸造を経てPyQtはをインストールした場合:
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
もちろん、これらのバージョンのフォルダ番号は、時間とともに変化するうちます。
(コピーはルートが所有していたので)何を私のために働いたことは/PyQt4/
からsip.x86_64-linux-gnu.so
に/usr/lib/python2.7/dist-packages
と<VIRTUALENV>/lib/python2.7/site-packages
をコピーし、これらのコピーされたファイルの所有者のパーミッションを変更してます。
本当に便利なことができるファイルリストの権利を取得するにはgitのを使用して、アーロンDigullaの答えに拡大。私は通常(msysGitシェルから)このような何かをします:
# Create temp git repo for the pristine Python installation
$ cd /c/Python27
$ git init -q
$ git add .
$ git commit -qm "Initial commit"
その後PyQt4(または何でも)のインストーラを実行します。その後、以下のように、インストーラが追加され、一時Gitのレポを削除することファイルのtarballを作ります:
# 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
次に、あなたのvirtualenvのフォルダに(あなたのシステムのPythonを乱雑にしたくない場合)PyQt4のアンインストーラを実行して、単純にuntarしpyqt4.tar.bz2
ことができます。あなたはgitのを使用して、すでに慣れている場合、これはあなたがのすべてののPyQt4-インストールされたファイルを取得確保するための素晴らしい方法です。
注:パッケージインストーラを使用してPyQt4をインストールするには、また、SIPをインストールします。あなたが実際にあなたのvirtualenvの内部に独自のC / C ++コードのバインディングを作成するには、の使用のこのSIPにしたい場合は、あなたがそれをコピーした後、sipconfig.py
ファイルにパスを変更したいと思います。それ以外の場合は、SIPのビルドシステムは、まだ仕事あなたがそこからすべてのPyQt4-インストールされたファイルを削除しない場合は、システムのPythonのフォルダ(例えば、C:\Python32
または何でも)、を指します。 (自分でSIPを使用して、任意の意図を持っていない場合、あなたはおそらくこれを省略することができます。)
シンボリックリンクが動作する可能性があります。
私は、Linux(Debianの/ SID)、パイソン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
IシンボリックリンクのみPySide
ディレクトリならば、興味深いことに、それは動作しません。私は、ディレクトリ内の各ファイルをシンボリックリンクする必要があります。それは(私のIDE)PyCharmの限界かもしれ - 私は知りません。
。この方法を試してください。 ピップインストールのpython-qt5