59

私はVirtualenvを使用しており、開発環境やその他のWeb指向のパッケージで利益を上げていweb.pyますsimplejson
Qtを使用して単純なPythonクライアントを開発し、web.pyで開発されたApiを再利用します。

ここの誰かがVirtualenvでPyQt4を正常にインストールしましたか?
出来ますか?

すべてのバイナリをダウンロードPyQt4し、python2.6ディレクトリにグローバルにインストールしました。
オプションを使用しない--no-site--packages場合、VirtualenvはPyQt4新しいサンドボックスに正しく含まれますが、明らかに、必要のないすべてのグローバルパッケージが含まれます。

オプション付きの新しいサンドボックスを準備してから、、またはその他の魔法のトリックを追加または使用するクリーンな方法はあり--no-site--packagesますPyQt4PySidepipeasy_install

4

13 に答える 13

52

空のvirtualenvを作成し、.../site-packages/PyQt4ディレクトリの内容をそこにコピーするだけで十分です。

PyQt4をグローバルに1回インストールし、ディレクトリのコピーを作成してアンインストールしてから、このトリックを使用してVEを作成することをお勧めします。

于 2009-12-25T22:17:40.730 に答える
46

私も同じ問題を抱えてる。私はvirtualenvwrapperを使用しているので、このスクリプトを作成して、すべての新しい仮想環境でPyQtへのリンクを作成しました。多分他の誰かに役立つでしょう:

#!/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

要旨へのリンク

于 2012-03-15T08:23:36.503 に答える
29

Linux debian、python 2.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.soのシンボリックリンクを作成しますln -s /usr/lib/python2.7/dist-packages/sip.so ~/.virtualenvs/myEnv/lib/python2.7/site-packages/
于 2015-03-04T08:51:45.067 に答える
8

Python 3 virtualenv(OSX上)で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
于 2014-04-01T10:56:45.507 に答える
7

仮想環境内からirc.freenode.net#pysideチャネルにPySideをインストールできるかどうか尋ねたところ、hugoplから肯定的な回答が得られました。そこで、PySide Binaries for Microsoft Windowsの指示に従い、機能しました。出力は以下のとおりです。

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.
于 2011-01-12T20:43:30.147 に答える
6

virtualenvの名前がmyProjectで、virtualenvwrapperを使用していると仮定します。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.
于 2012-12-20T07:18:54.723 に答える
6

最も簡単な方法は、これをインストールすることです:vext.pyqt4

これにより、単一のシステムPyQt4パッケージがvirtualenvに追加されます。

Ubuntu 16.04の使用法:

sudo apt install python3-pyqt4
mkvirtualenv --python=python3.5 venv
pip install --no-use-wheel vext.pyqt4
于 2017-12-18T09:02:18.557 に答える
4

PySide1.2.1およびUbuntu12.4の場合

コンパイラ、Qt関連、Pythonソースをインストールします

sudo apt-get install cmake qt4-qmake qt-sdk python-dev

でvirtenvを作成しますvirtualenvwrapper

Qtをコンパイルする準備をしてください(約30分)

$ mkvirtualenv ve_name
(ve_name)$ pip install PySide

テスト

$ python -c "from PyQt4 import QtCore; print QtCore.PYQT_VERSION_STR"
4.9.1
于 2013-12-28T18:52:01.540 に答える
4

Macにbrew経由でpyqtをインストールした場合(特に私はMavericksを使用しています):

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 

もちろん、これらのバージョンフォルダ番号は時間の経過とともに変更される可能性があります。

于 2014-02-14T16:39:42.893 に答える
3

私にとってうまくいったのは、これらのコピーされたファイルの所有権をコピー/PyQt4/してからsip.x86_64-linux-gnu.so変更することでした(コピーはrootによって所有されていたため)。/usr/lib/python2.7/dist-packages<VIRTUALENV>/lib/python2.7/site-packages

于 2015-12-17T16:27:52.357 に答える
2

Aaron Digullaの答えを拡張して、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(またはその他)のインストーラーを実行します。その後、次のように、インストーラーが追加したファイルのtarballを作成し、tempgitrepoを削除します。

# 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.bz2virtualenvフォルダーにアンインストールするだけです。すでにgitの使用に慣れている場合、これはPyQt4でインストールされたすべてのファイルを確実に取得するための優れた方法です。

:パッケージ化されたインストーラーを使用してPyQt4をインストールすると、SIPもインストールされます。実際にこのSIPを使用して、virtualenv内に独自のC / C ++コードのバインディングを作成する場合は、sipconfig.pyファイルをコピーした後で、ファイル内のパスを変更する必要があります。それ以外の場合、SIPのビルドシステムはシステムのPythonフォルダー(たとえば、C:\Python32その他)をポイントし続けます。これは、PyQt4がインストールされているすべてのファイルをそこから削除すると機能しません。(自分でSIPを使用するつもりがない場合は、おそらくこれをスキップできます。)

于 2011-11-16T23:17:07.717 に答える
2

シンボリックリンクが機能する場合があります。

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)の制限かもしれません-わかりません。

于 2014-11-02T12:37:59.817 に答える
0

これを試してください:pip install python-qt5

于 2017-07-01T16:22:10.427 に答える