ubuntuusers.de

[Python] PySide unter Xenial installieren?

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Barrios

Avatar von Barrios

Anmeldungsdatum:
21. Mai 2006

Beiträge: 60

Wohnort: Göttingen

Hi zusammen,

ich habe Pythonprojekte, die PySide 1.x in einem Virtualenv benötigen. Nach dem Upgrade auf Xenial kommt dies mit Python 3.5 aus den Paketquellen, welches von PySide noch nicht unterstützt wird. Daher benutze ich pyenv um andere Pythonversionen zu verwalten und habe mit

1
pyenv install 3.4.5

Python 3.4 nachinstalliert, welches auch läuft. Dann benutze ich

1
pyvenv-3.4 venv

um ein Virtualenv auf Basis von Python 3.4 zu erzeugen. Dann wechsle in dort hinein und will PySide installieren:

1
2
3
source venv/bin/activate
pip install --upgrade pip
pip install PySide

Die Compilierung bricht ab mit:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
    [ 81%] Linking CXX shared library libshiboken.cpython-34m.so
    collect2: fatal error: ld terminated with signal 6 [Abgebrochen], core dumped
    compilation terminated.
    /usr/bin/ld: ld: wcsrtombs.c:94: __wcsrtombs: Zusicherung »data.__outbuf[-1] == '\0'« nicht erfüllt.
    libshiboken/CMakeFiles/libshiboken.dir/build.make:381: die Regel für Ziel „libshiboken/libshiboken.cpython-34m.so.1.2.4“ scheiterte
    make[2]: *** [libshiboken/libshiboken.cpython-34m.so.1.2.4] Fehler 1
    make[2]: *** Datei „libshiboken/libshiboken.cpython-34m.so.1.2.4“ wird gelöscht
    CMakeFiles/Makefile2:204: die Regel für Ziel „libshiboken/CMakeFiles/libshiboken.dir/all“ scheiterte
    make[1]: *** [libshiboken/CMakeFiles/libshiboken.dir/all] Fehler 2
    Makefile:127: die Regel für Ziel „all“ scheiterte
    make: *** [all] Fehler 2
    error: Error compiling shiboken
    
    ----------------------------------------
Command "/home/barrios/code/pysidetest/venv/bin/python3.4 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-wgx9kvqk/PySide/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-c3zmhk0x-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/barrios/code/pysidetest/venv/include/site/python3.4/PySide" failed with error code 1 in /tmp/pip-build-wgx9kvqk/PySide/

Allerdings finde ich auch die genauen build dependencies nirgendwo? Die bei pyside-rtd sind für Python 2.7. Ich habe mich dann hieran orientiert: https://launchpad.net/ubuntu/xenial/+source/pyside

Ich nutze jetzt PyQt5 stattdessen, würde aber gern zu PySide zurückkehren. Bin für jeden Rat dankbar!

EDIT: Könnte es helfen CPython aus dem source zu compilieren statt pyenv zu verwenden, und wenn ja mit welcher Konfiguration?

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

hast du python-dev für Python 3.4 installiert?

Plan B: Anaconda nutzen, da kannst du pyside fertig kompiliert installieren.

Gruß, noisefloor

Barrios

(Themenstarter)
Avatar von Barrios

Anmeldungsdatum:
21. Mai 2006

Beiträge: 60

Wohnort: Göttingen

Danke erstmal für die Anregungen. Python3.4-dev hat leider Python3.4 als Abhängigkeit, kriege ich mit dpkg nicht installiert. Kann ich das aus dem source compilieren ohne dass es mit python3-dev von 3.5 kollidiert? Anaconda "verseucht" den PATH lt. Wiki, sodass ich keine Pythonversionen außerhalb von Anaconda mehr verwenden kann. ☹

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

zu Anaconda: nee, dass hast du falsch verstanden! Du musst nur an der besagten Stelle "nein" auswählen, dann bleibt Python 3.5 das Default-Python und Anaconda existiert friedlich nebenher ohne Seiteneffekte.

Wenn du gegen Python 3.4 kompilieren willst, dann brauchst die Python 3.4 Header Files, also python-dev für Python 3.4.

Gruß, noisefloor

Barrios

(Themenstarter)
Avatar von Barrios

Anmeldungsdatum:
21. Mai 2006

Beiträge: 60

Wohnort: Göttingen

Ah, danke für den Hinweis zu Anaconda. Dann ist das tatsächlich eine Option, die ich ausprobieren werde. Werde dann ggf. den Warnhinweis im Wiki zu Anaconda etwas relativieren, wenn man das auswählen kann, ob es im PATH eingetragen wird.

Und als Alternative: Wie müsste ich das den unter 16.04 machen, python-dev für 3.4 zu installieren?

Antworten |