import PyQt5 import uic
SyntaxError: invalid syntax
делаю все по видео https://www.youtube.com/watch?v=90xZtB3bbcg, но дальше не могу продвигаться, ибо никак не разберусь как это исправить. Я новичок в программировании, надеюсь на поддержку, спасибо
вот код:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import uic
import os
class App(QWidget):
def __init__(self):
self.start()
self.ui.show()
def start(self):
self.ui = uic.loadUi('calc.ui')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
app.exec_()
задан 19 дек 2020 в 13:45
11
Просмотрите видео еще раз. Там написано
from PyQt5 import uic
ответ дан 19 дек 2020 в 13:52
mega asdamega asda
4552 серебряных знака15 бронзовых знаков
20
Так у Вас не с импортом проблема. На скриншоте же написано, что ошибка в отсутствии файла calc.ui, а не в импорте uic. Скорее всего, вы просто забыли поместить файл calc.ui в папку с calc.py
На подсветку импорта красным не обращайте внимания, в PyCharm такое бывает
ответ дан 19 дек 2020 в 14:30
ktokto
251 серебряный знак7 бронзовых знаков
3
Для начала в вашем коде сделайте пути относительно скрипта это снимет часть проблем с отслеживанием что где лежит.
from pathlib import Path
cur_dir = Path(__file__).resolve().parent
print("Директория скрипта", cur_dir)
# ... Ваш код ...
def start(self):
self.ui = uic.loadUi(cur_dir / 'calc.ui')
Далее в консоли проверьте чтобы путь запуска был = пути скрипта. Текст перед тем где вы набираете команду. В принципе все должно работать. Еще если вы преобразуете calc.ui
-> calc.py
то это надо отразить и в коде.
Скорее всего Вы просто запутались с путями в системе, а также возможно с тем какой питон использует скрипт системный или виртуальное окружение.
ответ дан 19 дек 2020 в 17:13
KersKers
3,1462 золотых знака7 серебряных знаков16 бронзовых знаков
4
I’ve just updated to the current version (2.18.5 on Windows) of QGIS, in the hope of getting rid of the above error, without success. Some time ago I tried to install the QField Sync plugin, which I believe was the first time I saw this error.
One thing I notice is the weird file path apps/qgis/./pythonqgis
, it’s got slashes going both ways and a dot in the middle! If you ignore the weirdness the path does exist though.
ImportError: cannot import name uic
Traceback (most recent call last):
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 308, in loadPlugin
__import__(packageName)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 607, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/pluginsprocessing__init__.py", line 29, in
from processing.tools.general import * # NOQA
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 607, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/pluginsprocessingtoolsgeneral.py", line 31, in
from processing.core.Processing import Processing
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 607, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/pluginsprocessingcoreProcessing.py", line 42, in
from processing.script.ScriptUtils import ScriptUtils
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 607, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/pluginsprocessingscriptScriptUtils.py", line 30, in
from processing.script.ScriptAlgorithm import ScriptAlgorithm
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 607, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/pluginsprocessingscriptScriptAlgorithm.py", line 34, in
from processing.gui.Help2Html import getHtmlFromHelpFile
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./pythonqgisutils.py", line 607, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/pluginsprocessinggui__init__.py", line 1, in
from qgis.PyQt import uic
ImportError: cannot import name uic
Python version: 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]
QGIS version: 2.18.5 Las Palmas, 140a01f
Python Path:
C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python
C:/Users/marcp/.qgis2/python
C:/Users/marcp/.qgis2/python/plugins
C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesmatplotlib-1.3.1-py2.7-win-amd64.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesnose-1.3.3-py2.7.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagestornado-4.0.1-py2.7-win-amd64.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesbackports.ssl_match_hostname-3.4.0.2-py2.7.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagescertifi-14.05.14-py2.7.egg
C:PROGRA~1QGIS2~1.18binpython27.zip
C:PROGRA~1QGIS2~1.18appsPython27DLLs
C:PROGRA~1QGIS2~1.18appsPython27lib
C:PROGRA~1QGIS2~1.18appsPython27libplat-win
C:PROGRA~1QGIS2~1.18appsPython27liblib-tk
C:PROGRA~1QGIS2~1.18bin
C:PROGRA~1QGIS2~1.18appsPython27
C:PROGRA~1QGIS2~1.18appsPython27libsite-packages
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesPIL
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesjinja2-2.7.2-py2.7.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesmarkupsafe-0.23-py2.7-win-amd64.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packageswin32
C:PROGRA~1QGIS2~1.18appsPython27libsite-packageswin32lib
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesPythonwin
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesShapely-1.2.18-py2.7-win-amd64.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packageswx-2.8-msw-unicode
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesxlrd-0.9.2-py2.7.egg
C:PROGRA~1QGIS2~1.18appsPython27libsite-packagesxlwt-0.7.5-py2.7.egg
C:/Users/marcp/.qgis2//python
0 / 0 / 0 Регистрация: 08.03.2021 Сообщений: 153 |
|
1 |
|
12.07.2021, 12:44. Показов 8071. Ответов 4
Всем доброе утро! Проблема детская,но я всё обыскал,не могу понять-установил питон(PATH отметил),в Pycharm установил интерпретатор,скачал через cmd pyuic5 и проблем нет.Но не могу компилировать ui в py(какие только варианты команд не пробовал).Ошибка одна и та же- «pyuic5-uic» не является внутренней или внешней
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
12.07.2021, 12:44 |
4 |
Модератор 2337 / 1401 / 476 Регистрация: 21.02.2017 Сообщений: 3,849 Записей в блоге: 1 |
|
12.07.2021, 12:56 |
2 |
FagotPetrova, заходим в папку PyQt5, там в корне лежит нужный exe файл, профит.
0 |
0 / 0 / 0 Регистрация: 08.03.2021 Сообщений: 153 |
|
12.07.2021, 14:57 [ТС] |
3 |
exe файла там нет,хотя пакет установил через pip.А зачем мне exe?
0 |
Fudthhh Модератор 2337 / 1401 / 476 Регистрация: 21.02.2017 Сообщений: 3,849 Записей в блоге: 1 |
||||
12.07.2021, 15:17 |
4 |
|||
РешениеFagotPetrova, вперед читать доки по PyQt5(PySide2) — pyuic(uic) это исполняемый файл который находится в составе пакета. Добавлено через 40 секунд Во-первых, какая разница где он располагается, лишь бы работал. Во-вторых, ui-файлы можно использовать и без конвертации:
0 |
0 / 0 / 0 Регистрация: 08.03.2021 Сообщений: 153 |
|
12.07.2021, 15:28 [ТС] |
5 |
Только что хотел написать,что понял.Спасибо
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
12.07.2021, 15:28 |
Помогаю со студенческими работами здесь «pip» не является внутренней или внешней командой, исполняемой программой или пакетным файлом в pycharm «webpack-dev-server» не является внутренней или внешней командой, исполняемой программой или пакетным файлом > vueapp@1.0.0 dev C:pycharmdutyvueapp Php не является внутренней или внешней командой, исполняемой программой или пакетным файлом Tasm не является внутренней или внешней командой, исполняемой программой или пакетным файлом Node не является внутренней или внешней командой исполняемой программой или пакетным файлом
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 5 |
@JonB said in I can’t import .ui file: No module named error:
@hernancrespo89
This is way thrown out there on a hunch: if the file namedhistogram
shown in the UI is relevant, why is not namedhistogram.py
?
this is my reference, and there is no histogram.py
there.
And please copy & paste the full text (we can’t see the top) of the traceback here (not screenshot).
Here is the full traceback:
Traceback (most recent call last):
File "C:/Users/mustafa/Desktop/histogram6/histogram", line 68, in <module>
ex = Display_Histogram()
File "C:/Users/mustafa/Desktop/histogram6/histogram", line 36, in __init__
loadUi("histogram.ui", self)
File "C:Python35libsite-packagesPyQt5uic__init__.py", line 226, in loadUi
return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix)
File "C:Python35libsite-packagesPyQt5uicLoaderloader.py", line 72, in loadUi
return self.parse(filename, resource_suffix, basedir)
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 1000, in parse
actor(elem)
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 807, in createUserInterface
self.traverseWidgetTree(elem)
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 785, in traverseWidgetTree
handler(self, child)
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 262, in createWidget
self.traverseWidgetTree(elem)
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 785, in traverseWidgetTree
handler(self, child)
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 253, in createWidget
self.stack.push(self.setupObject(widget_class, parent, elem))
File "C:Python35libsite-packagesPyQt5uicuiparser.py", line 217, in setupObject
obj = self.factory.createQObject(clsname, name, args, is_attribute)
File "C:Python35libsite-packagesPyQt5uicobjcreator.py", line 106, in createQObject
factory = self.findQObjectType(classname)
File "C:Python35libsite-packagesPyQt5uicobjcreator.py", line 131, in findQObjectType
w = module.search(classname)
File "C:Python35libsite-packagesPyQt5uicLoaderqobjectcreator.py", line 115, in search
module = __import__(mname, {}, {}, (cls,))
ImportError: No module named 'histogram'
Trying to install PyQt5, the »make install» command ended by issuing a warning related to pyuic5 file format (see bellow)
the python path is set as
PYTHONPATH=/usr/lib/python3.2/site-packages/PyQt5
When testing I face these issues
modules not found
help('modules')
doesn’t display any PyQt5 module
Conversion error
Trying to convert a .ui file to a python module
$ pyuic5 mywindow.ui -o mywindow_ui.py
results in
/usr/bin/python3: No module named PyQt5.uic
Can’t convert UI nor embedded QT resources anymore (pyrcc5 fails as pyuic5)
Build
the build seems succesfull as the /usr/lib/python3.2/site-packages directory content is
/usr/lib/python3.2/site-packages/PyQt5$ ls
__init__.py QtNetwork.so QtSql.so
_QOpenGLFunctions_2_0.so QtOpenGL.so QtSvg.so
QtBluetooth.so QtPositioning.so QtTest.so
QtCore.so QtPrintSupport.so QtWebKit.so
QtDBus.so QtQml.so QtWebKitWidgets.so
QtDesigner.so QtQuick.so QtWebSockets.so
QtGui.so QtQuickWidgets.so QtWidgets.so
QtHelp.so QtSensors.so QtX11Extras.so
QtMultimedia.so QtSerialPort.so QtXmlPatterns.so
QtMultimediaWidgets.so Qt.so uic
Building environment
- debian 7.5 (wheezy)
- python3.2 standard package
- SIP 4.16.1 from sources
- Qt5.3 located at ~/Qt/5.3/gcc_64
- PyQt5 from sources
Build sequence
In the extracted PyQt5 source directory
$ python3 configure.py --qmake /home/jeby6372/Qt/5.3/gcc_64/bin/qmake
$ make
$ sudo make install
make install log
make[1]: Entering directory `/home/jeby6372/pack/PyQt-gpl-5.3/pyrcc'
install -m 755 -p "pyrcc5" "/usr/bin/pyrcc5"
strip "/usr/bin/pyrcc5"
make[1]: Leaving directory `/home/jeby6372/pack/PyQt-gpl-5.3/pyrcc'
install -m 644 -p /home/jeby6372/pack/PyQt-gpl-5.3/__init__.py /usr/lib/python3.2/site-packages/PyQt5/
cp -f -R /home/jeby6372/pack/PyQt-gpl-5.3/pyuic/uic /usr/lib/python3.2/site-packages/PyQt5/
install -m 755 -p /home/jeby6372/pack/PyQt-gpl-5.3/pyuic5 /usr/bin/
strip /usr/bin/pyuic5
strip:/usr/bin/pyuic5: File format not recognized
make: [install_pyuic5] Error 1 (ignored)
Any idea to solve that ?