Qt Designer, использующий Python 3.5 вместо Python 3.7 - PullRequest
0 голосов
/ 03 июля 2018

Я использую пользовательские виджеты для Qt Designer, написанные на python 3 через PyQt5, и мне пришлось использовать файл ресурсов, для которого требовался более новый sip API, но для этого мне пришлось обновить свой python.

Я на Ubuntu 16.04 LTS, поэтому я только что скачал python с python.org, и все, все прошло без проблем, мне удается без проблем установить python 3.7, если я использую команду "python3" в bash среда Python 3.7 работает нормально.

Но когда я запускаю Qt Designer, я получаю следующую ошибку:

Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/QRoundProgressBarplugin.py", line 3, in <module>
    from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/analogclockplugin.py", line 26, in <module>
    from PyQt5.QtGui import QIcon, QPixmap
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/counterplugin.py", line 3, in <module>
    from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/ledplugin.py", line 3, in <module>
    from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/manometerplugin.py", line 3, in <module>
    from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/switchplugin.py", line 3, in <module>
    from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices
Traceback (most recent call last):
  File "/home/ron/Qt/5.11.0/gcc_64/plugins/designer/python/thermometerplugin.py", line 3, in <module>
    from PyQt5.QtGui import QIcon
ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtGui.so: undefined symbol: PySlice_AdjustIndices

Конечно, как вы можете видеть, Qt Designer использует lib из python 3.5, поэтому не может найти символ PySlice_AdjustIndices, который присутствует в новейшем PyQt5 (5.11), но в / usr / local / lib I у меня есть как папки python3.5, так и python3.7, каждая из которых имеет версию PyQt5, но я не знаю, как Qt Designer указывает на эту папку вместо папки python3.7, есть идеи, как?

И, просто чтобы сообщить, очевидно, что проблема возникает, когда Qt Designer загружает пользовательские виджеты python, я не помню, где я получил мой libpyqt5.so (виджет C ++, который говорит конструктору, как читать виджеты Python), но я не могу найти его в моей последней установке PyQt5, возможно, этот плагин указывает на папку.

Любой намек или помощь?

1 Ответ

0 голосов
/ 13 августа 2018

Попробуйте вставить это вверху файла:

import os,sys
sys.path.insert(1,'/usr/local/lib/python3.7/dist-packages')

вверху вашего файла python; может быть обходной путь?

...