This article is from December 18th in Maya-Python Advent Calendar 2016.
As you all know, PySide has become PySide 2 in Maya 2017.
This change has caused some troubles.
I'm thinking of verifying PySide2 in order to find a solution, but Maya has adopted the alpha version of PySide2. Not yet registered on PyPI. It is also not available in the reliable Unofficial Windows Binaries for Python Extension Packages.
It's annoying from the bottom of my heart, but I'll try to build it. Maybe it will fail, but I hope it helps someone even a little.
I feel like it's full of demons, but I verified the following environment. I recommend Visual Studio 2008, but I don't like it so I don't use it.
http://wiki.qt.io/PySide2_GettingStarted
Install the necessary software for the time being. Since the PC is relatively new, there aren't many.
C: \ pyside \ pyside-setup
Since it is recommended by virtualenv, create it and enable it.
pushd C:\pyside
python -m virtualenv venv27
venv27\Scripts\activate.bat
git submodule --init
Since pyside-setup.git is connected to repositories such as pyside2 and shiboken2 with submodule, git submodule --init. I'm doing it with TortoiseGit because it's annoying, so I'll omit the command.
I got an error in all submodules, but when I tried it again, I got no error and it succeeded.
Magic
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
Build by specifying the path
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:Module computer type'x64'Is the type of target computer'X86'Is in conflict with.
LINK failed. with 1112
NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' :Return code'0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Return code'0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Return code'0x2'
Stop.
error: Error compiling shiboken2
Early. Isn't it built with 64bit?
It seems that the link of the test program gives an error, so let's not create a test.
python setup.py install --qmake="C:\Qt\5.6\msvc2015_64\bin\qmake.exe" --cmake="C:\Program Files\CMake\bin\cmake.exe"
It's advanced a lot (although it's siboken2), but it's still an error
[ 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:Module computer type'x64'Is the type of target computer'X86'Is in conflict with.
LINK failed. with 1112
NMAKE : fatal error U1077: '"C:\Program Files\CMake\bin\cmake.exe"' :Return code'0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Return code'0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"' :Return code'0x2'
Stop.
error: Error compiling shiboken2
Let's investigate seriously. Where do you specify X64?
After all, I don't understand even if I read the Makefile.
In CMake, you can find some articles that make it the command prompt attached to Visual Studio 2015.
"Magic" was sweet.
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
There was also an option to specify wheel creation, and it seems that the git command will be executed, so change the command option to disable it and execute the build.
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"
There was also an option to specify OpenSSL in setup.py, so if you look closely at the log, OpenSSL is disabled. 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 later ...
I went through the build. There are some strange things ...
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>
The wheel output destination is dist \ PySide2-2.0.0.dev0-cp27-cp27m-win_amd64.whl
.
If you pip install in the current environment, it is difficult to understand the cause when a problem occurs, so create a new virtualenv and install it.
(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
Let's check if the sample works.
(venv_pyside) C:\pyside>python pyside-setup\sources\pyside2-examples\examples\dialogs\standarddialogs.py
It worked.
The desired resource compiler! For the time being, check only the atmosphere that seems to move, and check the operation again this time. 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
Surprisingly, the build went smoothly and finished in a very short time.
"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
I forgot to write a revision of the 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 is also invalid and I have not confirmed the operation at all, but I will share it for the time being. Download here
https://fredrikaverpil.github.io/2016/08/17/compiling-pyside2/