[PYTHON] Essayez de construire PySide2

Cet article est un article du 18 décembre du Calendrier de l'Avent Maya-Python 2016.

introduction

Comme vous le savez tous, Maya 2017 a changé PySide en PySide2.

Ce changement a causé quelques problèmes.

Je pense vérifier PySide2 afin de trouver une solution, mais Maya utilise la version alpha de PySide2. Pas encore enregistré dans PyPI. Il n'est pas disponible dans les binaires Windows non officiels pour les packages d'extension Python.

C'est ennuyeux du fond du cœur, mais je vais essayer de le construire. Peut-être que cela échouera, mais j'espère que cela aidera un peu quelqu'un.

environnement

J'ai l'impression que c'est plein de démons, mais j'ai vérifié l'environnement suivant. Je recommande Visual Studio 2008, mais je ne l'aime pas donc je ne l'utilise pas.

Préparation

http://wiki.qt.io/PySide2_GettingStarted

Installation des logiciels nécessaires pour le moment. Le PC étant relativement récent, il n'y en a pas beaucoup.

  1. Clonez le référentiel git. Pour le moment, j'ai choisi C: \ pyside \ pyside-setup```
  2. Qt est 5,6, alors téléchargez Qt 5.6.2 pour Windows 64 bits (VS 2015) depuis Qt.
  3. Il semble se construire avec CMake, alors téléchargez CMake 3.7.1.

Défi à construire

Créer virtualenv

Puisqu'il est recommandé par virtualenv, créez-le et activez-le.

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

git submodule --init

Puisque pyside-setup.git est connecté au référentiel de pyside2 et shiboken2 par sous-module, git submodule --init. Je le fais avec TortoiseGit parce que c'est ennuyeux, alors je vais omettre la commande.

2016-12-17_13h21_19.png

J'ai eu une erreur dans tous les sous-modules, mais quand j'ai essayé à nouveau, je n'ai eu aucune erreur et cela a réussi.

Construire

la magie

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

Construire en spécifiant le chemin

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

Erreur

[ 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:Type d'ordinateur du module'x64'Est le type d'ordinateur cible'X86'Est en conflit avec.

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

De bonne heure. N'est-il pas construit avec 64 bits?

Il semble que le lien du programme de test donne une erreur, alors ne créons pas de test.

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

C'est beaucoup avancé (bien que ce soit siboken2), mais c'est toujours une erreur

[ 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:Type d'ordinateur du module'x64'Est le type d'ordinateur cible'X86'Est en conflit avec.

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

Examinons sérieusement. Où spécifiez-vous X64?

Après tout, je ne comprends pas même si je lis le Makefile.

Dans CMake, vous pouvez trouver des articles qui en font l'invite de commande fournie avec Visual Studio 2015.

"Magic" était doux.

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

Il y avait aussi une option pour spécifier la création de roue, et il semble que la commande git sera exécutée facilement, alors changez l'option de commande pour la désactiver et exécuter la construction.

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"

Il y avait également une option pour spécifier OpenSSL dans setup.py, donc si vous regardez attentivement le journal, OpenSSL est désactivé. 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 minutes plus tard ...

Je suis passé par la construction. Il y a des choses étranges ...

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

La destination de sortie de la roue est dist \ PySide2-2.0.0.dev0-cp27-cp27m-win_amd64.whl ''. Si vous installez dans l'environnement actuel, il est difficile de comprendre la cause lorsqu'un problème survient, alors créez un nouveau virtualenv et installez-le.

(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

Vérifions si l'exemple fonctionne.

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

Ça a marché.

2016-12-17_15h30_29.png

Le compilateur de ressources souhaité! Pour le moment, vérifiez uniquement l'atmosphère qui semble bouger, et revérifiez l'opération cette fois. 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

Résumé

Étonnamment, la construction s'est bien déroulée et s'est terminée en très peu de temps.

"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

J'ai oublié d'écrire une révision de la source.

> 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 est également invalide et je n'ai pas du tout confirmé l'opération, mais je la partagerai pour le moment. Télécharger ici

référence

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

Recommended Posts

Essayez de construire PySide2
Essayez de créer Jupyter Hub avec Docker
Essayez Python
essayez pysdl2
Essayez de créer un environnement pour MayaPython avec VisualStudioCode