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,1562 золотых знака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 Сообщений: 155 |
|
|
1 |
|
|
12.07.2021, 12:44. Показов 9421. Ответов 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 |
|
Модератор 2872 / 1573 / 510 Регистрация: 21.02.2017 Сообщений: 4,197 Записей в блоге: 1 |
|
|
12.07.2021, 12:56 |
2 |
|
FagotPetrova, заходим в папку PyQt5, там в корне лежит нужный exe файл, профит.
0 |
|
0 / 0 / 0 Регистрация: 08.03.2021 Сообщений: 155 |
|
|
12.07.2021, 14:57 [ТС] |
3 |
|
exe файла там нет,хотя пакет установил через pip.А зачем мне exe?
0 |
|
Fudthhh Модератор 2872 / 1573 / 510 Регистрация: 21.02.2017 Сообщений: 4,197 Записей в блоге: 1 |
||||
|
12.07.2021, 15:17 |
4 |
|||
|
РешениеFagotPetrova, вперед читать доки по PyQt5(PySide2) — pyuic(uic) это исполняемый файл который находится в составе пакета. Добавлено через 40 секунд Во-первых, какая разница где он располагается, лишь бы работал. Во-вторых, ui-файлы можно использовать и без конвертации:
0 |
|
0 / 0 / 0 Регистрация: 08.03.2021 Сообщений: 155 |
|
|
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 |
This topic has been deleted. Only users with topic management privileges can see it.
have an import problem under PyCharm uic is not found
OS: Ubuntu 20.04
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
loadUi("first_test.ui")
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
PyQt5 5.15.4
pyqt5-plugins 5.15.4.2.2
PyQt5-qt5 5.15.2
PyQt5-sip 12.11.0
pyqt5-tools 5.15.4.3.2
Any Ideas
Thanks
McAce
Hi and welcome to devnet,
uic is a command line tool, it’s not something you import.
It might not be completely accurate in the case of PyQt5, see answer below for more details.
[edit: added more details SGaist]
Ah Okay now I understand it all, I was missing this info.
Thanks
@SGaist Hi, if it wasnt meant to be imported. Why is there documentation found here that shows us how to import it?
Hi,
@TheNoodleNator said in import problem under PyCharm uic is not found:
@SGaist Hi, if it wasnt meant to be imported. Why is there documentation found here that shows us how to import it?
I learned something new, thanks !
It’s something that is specific to PyQt5 and quite frankly I have never came across it until now. From a quick look, it does not seem to be documented as public API to be used by Qt applications.
The main things I found boils down to: python3 -m PyQt5.uic.pyuic mywidget.ui -o mywidget.py
The standard way to use .ui files is through the QtDesigner module either by using pyuic5 to generate a python file from your .ui file or use of the QUiLoader class. See here for a more detailed explanation.
Решил я сделать простенькое приложение-генератор с GUI на PyQt5, но появилась ошибка.
Вот сам код:
import sys
import os
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi
import random, string
import time
class p_main(QWidget):
def __init__(self):
super(p_main, self).__init__()
loadUi("uno.ui", self)
self.PushButton.clicked.connect(gen)
def gen():
value = 1
while value <= amount:
code = "https://discord.gift/" + ('').join(random.choices(string.ascii_letters + string.digits, k=16))
value += 1
self.Label.setText(code)
app = QApplication(sys.argv[:1])
wind = p_main(QWidget)
wind.show()
sys.exit(app.exec_())
А вот ошибка:
Traceback (most recent call last):
File "C:UsersDesmokeDesktop5.py", line 23, in <module>
wind = p_main(QWidget)
TypeError: __init__() takes 1 positional argument but 2 were given


Сообщение было отмечено FagotPetrova как решение