[PYTHON] Versuchen Sie, PySide2 zu erstellen

Dieser Artikel ist ein Artikel vom 18. Dezember des Maya-Python-Adventskalenders 2016.

Einführung

Wie Sie alle wissen, hat Maya 2017 PySide in PySide2 geändert.

Diese Änderung hat einige Probleme verursacht.

Ich denke darüber nach, PySide2 zu überprüfen, um eine Lösung zu finden, aber Maya verwendet die Alpha-Version von PySide2. Noch nicht in [PyPI] registriert (https://pypi.python.org/pypi?%3Aaction=search&term=pyside&submit=search). Es ist nicht in den zuverlässigen Inoffiziellen Windows-Binärdateien für Python-Erweiterungspakete verfügbar.

Es ist aus tiefstem Herzen ärgerlich, aber ich werde versuchen, es zu bauen. Vielleicht wird es scheitern, aber ich hoffe, es hilft jemandem sogar ein wenig.

Umgebung

Ich habe das Gefühl, es ist voller Dämonen, aber ich habe die folgende Umgebung überprüft. Ich empfehle Visual Studio 2008, aber es gefällt mir nicht, deshalb verwende ich es nicht.

Vorbereitung

http://wiki.qt.io/PySide2_GettingStarted

Installation der notwendigen Software vorerst. Da der PC relativ neu ist, gibt es nicht viele.

  1. Klonen Sie das Git-Repository. Vorerst habe ich `` `C: \ pyside \ pyside-setup``` gewählt
  2. Qt ist 5.6, laden Sie also Qt 5.6.2 für Windows 64-Bit (VS 2015) von Qt herunter.
  3. Es scheint mit CMake zu bauen, also laden Sie CMake 3.7.1 herunter.

Herausforderung zu bauen

Erstellen Sie virtualenv

Da es von virtualenv empfohlen wird, erstellen Sie es und aktivieren Sie es.

pushd C:\pyside
python -m virtualenv venv27
venv27\Scripts\activate.bat

git submodule --init

Da pyside-setup.git über das Submodul mit dem Repository von pyside2 und shiboken2 verbunden ist, git submodule --init. Ich mache es mit TortoiseGit, weil es nervt, also werde ich den Befehl weglassen.

2016-12-17_13h21_19.png

Ich habe in allen Submodulen einen Fehler erhalten, aber als ich es erneut versuchte, bekam ich keinen Fehler und es war erfolgreich.

Bauen

Magie

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"

Erstellen Sie durch Angabe des Pfads

python setup.py install --build-tests --qmake="C:\Qt\5.6\msvc2015_64\bin\qmake.exe" --cmake="C:\Program Files\CMake\bin\cmake.exe"

Error

[ 10%] Building CXX object ApiExtractor/tests/CMakeFiles/testdtorinformation.dir/testdtorinformation_automoc.cpp.obj
testdtorinformation_automoc.cpp
[ 10%] Linking CXX executable testdtorinformation.exe
Qt5Core.lib(Qt5Core.dll) : fatal error LNK1112:Modul Computertyp'x64'Ist der Typ des Zielcomputers'X86'Steht im Konflikt mit.

LINK failed. with 1112
NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' :Rückgabe Code'0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Rückgabe Code'0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Rückgabe Code'0x2'
Stop.
error: Error compiling shiboken2

Früh. Ist es nicht mit 64bit gebaut?

Es scheint, dass der Link des Testprogramms einen Fehler ausgibt. Erstellen wir also keinen Test.

python setup.py install --qmake="C:\Qt\5.6\msvc2015_64\bin\qmake.exe" --cmake="C:\Program Files\CMake\bin\cmake.exe"

Es ist viel fortgeschritten (obwohl es siboken2 ist), aber es ist immer noch ein Fehler

[ 80%] Building CXX object libshiboken/CMakeFiles/libshiboken.dir/shibokenbuffer.cpp.obj
shibokenbuffer.cpp
[ 81%] Linking CXX shared library shiboken2.dll
python27.lib(python27.dll) : fatal error LNK1112:Modul Computertyp'x64'Ist der Typ des Zielcomputers'X86'Steht im Konflikt mit.

LINK failed. with 1112
NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' :Rückgabe Code'0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Rückgabe Code'0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Rückgabe Code'0x2'
Stop.
error: Error compiling shiboken2

Lassen Sie uns ernsthaft untersuchen. Wo geben Sie X64 an?

Immerhin verstehe ich nicht, auch wenn ich das Makefile lese.

In CMake finden Sie einige Artikel, die es zur Eingabeaufforderung von Visual Studio 2015 machen.

"Magie" war süß.

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

Es gab auch eine Option zum Festlegen der Raderstellung, und es scheint, dass der Befehl git problemlos ausgeführt werden kann. Ändern Sie daher die Befehlsoption, um ihn zu deaktivieren und den Build auszuführen.

python setup.py bdist_wheel --ignore-git --qmake="C:\Qt\5.6\msvc2015_64\bin\qmake.exe" --cmake="C:\Program Files\CMake\bin\cmake.exe"

Es gab auch eine Option zum Festlegen von OpenSSL in setup.py. Wenn Sie sich das Protokoll genau ansehen, ist OpenSSL deaktiviert. Acha, Maika

Qt docs: C:/Qt/Docs/Qt-5.6
Qt plugins: C:/Qt/5.6/msvc2015_64/plugins
---
OpenSSL libs: None
==============================
Building module shiboken2...

30 Minuten später ...

Ich ging durch den Bau. Es gibt einige seltsame Dinge ...

running install_egg_info
Copying pyside_package\PySide2.egg-info to build\bdist.win-amd64\wheel\.\PySide2-2.0.0.dev0-py2.7.egg-info
running install_scripts
*** Install completed
C:\pyside\venv27\lib\site-packages\wheel\pep425tags.py:77: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
C:\pyside\venv27\lib\site-packages\wheel\pep425tags.py:81: RuntimeWarning: Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
C:\pyside\venv27\lib\site-packages\wheel\pep425tags.py:87: RuntimeWarning: Config variable 'Py_UNICODE_SIZE' is unset, Python ABI tag may be incorrect
  sys.version_info < (3, 3))) \
creating build\bdist.win-amd64\wheel\PySide2-2.0.0.dev0.dist-info\WHEEL

(venv27) C:\pyside\pyside-setup>

Installation

Das Radausgabeziel ist `` `dist \ PySide2-2.0.0.dev0-cp27-cp27m-win_amd64.whl```. Wenn Sie die Pip-Installation in der aktuellen Umgebung durchführen, ist es schwierig, die Ursache zu verstehen, wenn ein Problem auftritt. Erstellen Sie daher eine neue virtuelle Umgebung und installieren Sie sie.

(venv27) C:\pyside\pyside-setup>deactivate
C:\pyside\pyside-setup>cd ..
C:\pyside>
C:\pyside>python -m virtualenv venv_pyside
C:\pyside>venv_pyside\Scripts\activate.bat
(venv_pyside) C:\pyside>python -m pip install pyside-setup\dist\PySide2-2.0.0.dev0-cp27-cp27m-win_amd64.whl
Processing c:\pyside\pyside-setup\dist\pyside2-2.0.0.dev0-cp27-cp27m-win_amd64.whl
Installing collected packages: PySide2
Successfully installed PySide2-2.0.0.dev0
(venv_pyside) C:\pyside>python -m pip freeze
PySide2==2.0.0.dev0

Lassen Sie uns überprüfen, ob das Beispiel funktioniert.

(venv_pyside) C:\pyside>python pyside-setup\sources\pyside2-examples\examples\dialogs\standarddialogs.py

Es funktionierte.

2016-12-17_15h30_29.png

Der gewünschte Ressourcen-Compiler! Überprüfen Sie vorerst nur die Atmosphäre, die sich zu bewegen scheint, und überprüfen Sie diesmal den Betrieb erneut. Huh.

(venv_pyside) C:\pyside>C:\pyside\venv_pyside\Lib\site-packages\PySide2\pyside2-rcc.exe
PySide2 resource compiler
Usage: C:\pyside\venv_pyside\Lib\site-packages\PySide2\pyside2-rcc.exe  [options] <inputs>

Options:
    -o file           Write output to file rather than stdout
    -py2              Generate code for any Python v2.x version
    -py3              Generate code for any Python v3.x version (default)
    -name name        Create an external initialization function with name
    -threshold level  Threshold to consider compressing files
    -compress level   Compress input files by level
    -root path        Prefix resource access path with root path
    -no-compress      Disable all compression
    -version          Display version
    -help             Display this information

Zusammenfassung

Überraschenderweise verlief der Bau reibungslos und war in sehr kurzer Zeit abgeschlossen.

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

python setup.py bdist_wheel --ignore-git --qmake="C:\Qt\5.6\msvc2015_64\bin\qmake.exe" --cmake="C:\Program Files\CMake\bin\cmake.exe"

python -m pip install dist\PySide2-2.0.0.dev0-cp27-cp27m-win_amd64.whl

Ich habe vergessen, eine Revision der Quelle zu schreiben.

> git rev-parse HEAD
6026e8b4f22d630e4e61424e153a605c060c22bb
> git submodule status
+eef6e46bf205e76616ae3fbfca92c917df22b6c4 sources/pyside2 (1.2.2-399-geef6e46)
+4ca11515b6c5376269cb91a4975e8c5b71a2cdb4 sources/pyside2-examples (heads/dev)
 7fe32567c75b6b9985b9efbecf74477c9e829fb2 sources/pyside2-tools (heads/dev)
+8611bda3b346762e0589402f130b73f20dd75914 sources/shiboken2 (1.2.2-168-g8611bda)
+ed7b7ceddc2c0ec6115d58a0611441d972ea1f97 wiki (heads/master)

OpenSSL ist ebenfalls ungültig und ich habe den Vorgang überhaupt nicht bestätigt, werde ihn aber vorerst weitergeben. Laden Sie [hier] herunter (https://drive.google.com/file/d/0B8iSX-bz8WcHWnc4THVZZ2pXVm8/view?usp=sharing)

Referenz

https://fredrikaverpil.github.io/2016/08/17/compiling-pyside2/

Recommended Posts

Versuchen Sie, PySide2 zu erstellen
Versuchen Sie, Jupyter Hub mit Docker zu erstellen
Versuchen Sie Python
versuchen Sie es mit pysdl2
Versuchen Sie, mit VisualStudioCode eine Umgebung für MayaPython zu erstellen