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
[idnovic@id-lappy ~]0$ maestral-gui
Warning: PyQt5 is required to run the Maestral GUI. Run `pip install pyqt5` to install it.
Traceback (most recent call last):
File "/home/idnovic/.local/bin/maestral", line 11, in <module>
load_entry_point('maestral==0.2b0', 'console_scripts', 'maestral')()
File "/home/idnovic/.local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/idnovic/.local/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/idnovic/.local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/idnovic/.local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/idnovic/.local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/idnovic/.local/lib/python3.7/site-packages/maestral/console_script.py", line 30, in gui
from maestral.gui.main import run
File "/home/idnovic/.local/lib/python3.7/site-packages/maestral/gui/main.py", line 26, in <module>
from maestral.gui.settings_window import SettingsWindow
File "/home/idnovic/.local/lib/python3.7/site-packages/maestral/gui/settings_window.py", line 13, in <module>
from PyQt5 import QtGui, QtCore, QtWidgets, uic
ImportError: cannot import name 'uic' from 'PyQt5' (/usr/lib64/python3.7/site-packages/PyQt5/__init__.py)
[idnovic@id-lappy ~]1$ pip3 install --user pyqt5
Requirement already satisfied: pyqt5 in /usr/lib64/python3.7/site-packages (5.12.2)
It seems I have the dependency installed but still have an import problem.
Do you have suggestions?
|
0 / 0 / 0 Регистрация: 08.03.2021 Сообщений: 153 |
|
|
1 |
|
|
12.07.2021, 12:44. Показов 7870. Ответов 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 |
|
Модератор
2322 / 1388 / 473 Регистрация: 21.02.2017 Сообщений: 3,816 Записей в блоге: 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 Модератор
2322 / 1388 / 473 Регистрация: 21.02.2017 Сообщений: 3,816 Записей в блоге: 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 |
Я пытаюсь импортировать PyQt5.uic для загрузки файла пользовательского интерфейса в скрипт pycharm python, но получаю ошибку: не удается найти ссылку ‘uic’ в ‘ init .pyi | init .pyi
Я пробовал много решений, таких как invaildate cache и restart, а также удалить старую версию из python и сохранить мою текущую версию, которая 3.9
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType # error appears here
1 ответ
Лучший ответ
Я как бы исправил проблему, проблема была в самом PyCharm, в версии PyQt5 или python проблем нет. Когда я попробовал ее на VSCode, у меня не было проблем с кодом, если вы хотите решить ее на PyCharm, это легко, Просто продолжайте писать код!
Это ошибка из Pycharm, как я заметил выше, ошибки нет, поэтому в pycharm код будет таким:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType #error appears here
import os
from os import path
FORM_CLASS, _ =
loadUiType(path.join(path.dirname(__file__),
"Theme.UI")) # there is no error here!
И запустите код, все заработает!
1
Yusuf Taha
24 Ноя 2020 в 10:35
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
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 ?
This bug affects 1 person
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
|
pyqt5 (Ubuntu)
|
Invalid |
Undecided |
Unassigned
|
Bug Description
The python3-pyqt5’s pyuic module doesn’t appear to work under upcoming Ubuntu Yakkety.
Normally, executing a script (with no additional argument) which simply calls «from PyQt5.uic import pyuic» would return an error in the console saying Error: one input ui-file must be specified. However, right now, loading the module simply fails, with no error output. Adding an argument also fails to make the module work.
I’ve discovered this while attempting to build QGIS using an up-to-date development version of Yakkety. The current version of this package (pythong-3pyqt5) is 5.7+dfsg-2.
@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 namedhistogramshown 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'
Сообщение было отмечено FagotPetrova как решение