2017-04-11 26 views
5

Phiên bản ngắn: Làm cách nào để có cấu hình của PyQt4 configure.py sử dụng phiên bản SIP được cài đặt trong Virtual Env?VirtualEnv không đặt đường dẫn chính xác, không thể sử dụng mô-đun đã cài đặt

Phiên bản dài: Tôi biết các biến thể về câu hỏi này đã được hỏi như hàng triệu lần ở đây nhưng tôi dường như không thể tìm thấy câu trả lời. Tôi đang cố gắng để cài đặt SIP và PyQt4 trong một Env ảo (VE). Tôi không thể cài đặt nó vào hệ thống chính vì nó là một máy tính công việc. Chúng tôi có một phiên bản cũ hơn của PyQt vì vậy tôi không thể chỉ sao chép từ các gói trang web.

Tôi đã cài đặt SIP trong VE (configure.py --incdir, make, make install) tuy nhiên khi tôi chạy cấu hình trên PyQt4 tôi gặp lỗi: Lỗi: Phiên bản PyQt này yêu cầu SIP v4.19.0 hoặc một lát sau. Tôi đã cài đặt phiên bản 4.19.2. Khi chạy sipconfig nó cho tôi biết nó vẫn đang sử dụng phiên bản hệ thống, ngay cả khi VE được kích hoạt. Làm thế nào để tôi nói với configure.py cho PyQt sử dụng gói được cài đặt trong VE?

Cảm ơn tất cả!

EDIT: Theo giao diện của nó, có vẻ như VE của tôi không kéo libs python từ đúng nơi, ngay cả khi VE được kích hoạt. Tôi đã thêm một dòng để kích hoạt chắp thêm các gói site và bin dirs đường dẫn và các gói site tới đường dẫn con trỏ mà không thành công. Nó vẫn không tìm thấy các libs chính xác.

+0

tôi vẫn còn một chút khó khăn về vấn đề này. Tôi đã có thể kích hoạt VE. Đây là một số đầu ra đầu cuối ... – jspada

+0

[ve2] [OMMITED]/home/OMMITED/OSE_test/ve2> python2.7 PyQt4_gpl_x11-4.12/configure.py Lỗi: Phiên bản PyQt này yêu cầu SIP v4.19.0 hoặc mới hơn [ ve2] [OMMITED]/home/OMMITED/OSE_test/ve2> mà nhâm nhi ./bin/sip – jspada

+0

Khi xem libs cho SIP, có vẻ như nó vẫn đang sử dụng lib Hệ thống chứ không phải lib lib. – jspada

Trả lời

1

Bạn không cần xây dựng SIP từ nguồn. Những file đó có bánh xe ở đây https://pypi.python.org/pypi/SIP

Trong trường hợp của tôi, trên macos, tôi đã có để tải về các bánh xe và đổi tên nó để lừa pip vào cài đặt nó:

$ 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

Pip là khá ngu ngốc. Tên tệp phải khớp với thứ gì đó mà pip biết cho nền tảng của bạn.

Sau đó, tôi đã có thể cài đặt sử dụng python configure-ng.py (sau khi nâng cấp qt trên mac của tôi 5,5-5,8 sử dụng brew upgrade qt, do một lỗi https://forum.qt.io/topic/71119/project-error-xcode-not-set-up-properly/7

Sau đó, tôi nhận được một lỗi đẹp:

$ 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.

Nhưng đó không phải là lỗi SIP

1

Cài đặt pip trong môi trường ảo của bạn Và kiểm tra xem pip có đang sử dụng đúng thư mục không bằng cách sử dụng which pip.Nếu nó không được sử dụng đúng thư mục, Hãy thử điều này:

pip install --target=<location of site packages of your pip in your virtual env> sip==4.19

Nếu bạn nhận được một lỗi gọi là cho phép từ chối, sử dụng

sudo chown -R your_username:your_username path/to/virtuaelenv/ 

Sau đó làm:

pip install PyQt4 

Nếu không của các tác phẩm trên, vui lòng thực hiện theo các hướng dẫn sau:

http://movingthelamppost.com/blog/html/2013/07/12/installing_pyqt____because_it_s_too_good_for_pip_or_easy_install_.html

1

Hãy thử sử dụng Anaconda Anaconda là một phân phối python trong đó bao gồm một trình quản lý gói thay thế (ngoài pip) và một cơ chế env ảo thay thế

gói conda làm việc tốt với cơ chế conda venv, vì vậy bạn shouldn 't có những vấn đề này, và không yêu cầu sửa đổi kịch bản bên thứ 3 hoặc bằng tay tạo liên kết

cài đặt từ: https://www.continuum.io/downloads

để tạo ra một env chạy ảo

conda create -n <name> 

kích hoạt venv

source activate <name> 

(khi sử dụng vỏ \ bash)

để cài đặt PyQt chạy:

conda install pyqt 
Các vấn đề liên quan