VirtualEnv未正确设置路径,无法使用已安装的模块

jsp*_*ada 5 python virtualenv pyqt4 python-sip

简短版本:我如何让PyQt4的configure.py使用Virtual Env中安装的SIP版本?

长版本:我知道这个问题的变化在这里被问过一百万次,但我似乎无法找到答案.我正在尝试在虚拟环境(VE)中安装SIP和PyQt4.我无法将其安装到主系统,因为它是一台工作计算机.我们有一个旧版本的PyQt所以我不能只是从网站包复制.

我在我的VE中安装了SIP(configure.py --incdir,make,make install)但是当我在PyQt4上运行configure时,我得到错误:错误:此版本的PyQt需要SIP v4.19.0或更高版本.我安装了4.19.2版.当运行sipconfig时,它告诉我它仍在使用系统版本,即使激活了VE.如何告诉configure.py PyQt使用VE中安装的软件包?

谢谢大家!

编辑:从它的外观来看,似乎我的VE没有从正确的位置拉蟒蛇库,即使VE被激活.我添加了一行来激活将site-packages和bin dirs的路径和site-packages附加到pythonpath而没有成功.它仍然没有找到正确的库.

jrw*_*ren 1

您无需从源代码构建 SIP。这里有轮子文件https://pypi.python.org/pypi/SIP

就我而言,在 Macos 上,我必须下载 Wheel 并重命名它以欺骗 pip 安装它:

$ curl -L -O 'https://pypi.python.org/packages/f9/8c/23d88c8e4d457031111b70ec25bf97844776ec16cfd4688f318dcaeba5d6/sip-4.19.2-cp35-cp35m-macosx_10_6_intel.whl#md5=eb42e9975cae2b936ecc980b9a3266ed'
$ mv sip-4.19.2-cp35-cp35m-*.whl sip-4.19.2-cp35-none-macosx_10_11_x86_64.whl
$ pip install sip-4.19.2-cp35-none-macosx_10_11_x86_64.whl
Run Code Online (Sandbox Code Playgroud)

皮普实在是太蠢了。文件名必须与 pip 知道的您平台的名称相匹配。

然后,我能够使用安装python configure-ng.py(在使用 mac 上的 qt 从 5.5 升级到 5.8 之后brew upgrade qt,由于错误https://forum.qt.io/topic/71119/project-error-xcode-not-set-up -正确/7

然后我得到了一个很好的错误:

$ python configure-ng.py --verbose
Querying qmake about your Qt installation...
Determining the details of your Qt installation...
/usr/local/Cellar/qt5/5.8.0_2/bin/qmake -o qtdetail.mk qtdetail.pro
Info: creating stash file /Users/jrwren/Downloads/PyQt4_gpl_mac-4.12/.qmake.stash
make -f qtdetail.mk
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.9  -O2 -std=gnu++11 -Wall -W -fPIC -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I/usr/local/Cellar/qt/5.8.0_2/lib/QtCore.framework/Headers -I. -I/usr/local/Cellar/qt/5.8.0_2/mkspecs/macx-clang -F/usr/local/Cellar/qt/5.8.0_2/lib -o qtdetail.o qtdetail.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -stdlib=libc++ -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.9  -o qtdetail.app/Contents/MacOS/qtdetail qtdetail.o   -F/usr/local/Cellar/qt/5.8.0_2/lib -framework QtCore -framework DiskArbitration -framework IOKit
qtdetail.app/Contents/MacOS/qtdetail
This is the GPL version of PyQt 4.12 (licensed under the GNU General Public
License) for Python 3.5.1 on darwin.
Error: This version of PyQt4 and the commercial version of Qt have incompatible
licenses.
Run Code Online (Sandbox Code Playgroud)

但这不是 SIP 错误。