from PyQt6.QtWidgets import * from model.Department import Department from view.main_window import Ui_Form from model.Department import Department, Employee class Homewidget(QWidget,Ui_Form): def __init__(self): QWidget.__init___(self) self.setupUi(self) self.depts = Department.get_all_depts() self.load_depts self.emps= Employee.get_all_emps() self.load_emps self.cb_depts.currentIndexChanged.connect(self.filter_emps_by_dept) self.le_search.textChanged.connect(self.filter_emps_by_name) def load_depts(self): names = [d.dept_name for d in self.depts] self.cb_depts.addItems(names) def load_emps(self): self.tb_emps.setRowCount(0) for i, e in self.emps: self.tb_emps.insertRow(i) for j, info in enumerate(e.__dict__.values()): self.tb_emps.setItem(i , j, QTableWidgetItem(str(info))) def filter_emps_by_dept(self, idx): self.load_emps() if idx != 0: dept = self.depts[idx - 1] for i, e in enumerate(self.emps): if e.dept_id != dept.dept_id: self.tb_emps.hideRow(i) def filter_emps_by_name(self): self.load_emps() query = self.le_search.text().lower() if query != "": for i , e in enumerate(self.emps): if not e.emp_name.lower().startswith(query): self.tb_emps.hideRow(i)} app = QApplication([]) window = Homewidget() window.show() app.exec()este es el error que estoy enfrentando en mi m1 MacBook Pro Monetery no puede ejecutar mi proyecto GUI para la escuela. el PyQt6 viene por defecto en arm64 y no estoy seguro, pero creo que mi software es arm64e. Soy nuevo en osx. No sé qué hacer. ¿Puedo cambiar el software de arm64e a arm64?
este es el error que estoy enfrentando a continuación ...
ahmed@Ahmeds-MacBook-Pro hr_system % /usr/local/bin/python3 >/Users/ahmed/hr_system/app.py Rastreo (última llamada más reciente): Archivo "/Users/ahmed/hr_system/app.py", línea 1, desde PyQt6.QtWidgets import * ImportError: >dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/sit>e-packages/PyQt6/QtWidgets.abi3.so, 0x0002) : Biblioteca no cargada: >@rpath/QtWidgets.framework/Versions/A/QtWidgets Referenciado desde: >/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site->packages/PyQt6/QtWidgets. abi3.so Motivo: probado: >'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site->packages/PyQt6/Qt6/lib/QtWidgets.framework/Versions/A/QtWidgets' ( mach-o >archivo, pero es una arquitectura incompatible (tiene 'x86_64', necesita 'arm64e')), >'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site->packages/ PyQt6/Qt6/lib/QtWidgets.framework/Versions/A/QtWidgets' (mach-o >file, pero es una arquitectura incompatible (tiene 'x86_64', necesita 'arm64e')), >'/System/Libr ary/Frameworks/QtWidgets.framework/Versions/A/QtWidgets' (no >tal archivo)
Para tu información, puedes ver los archivos del paquete disponibles en el sitio web pypi.org (ver: https://pypi.org/project/PyQt6/#files ).
El archivo .whl de macos (es solo un archivo zip) incluye varios archivos .so y todos son de arquitectura dual (es decir, contienen x86_64 y arm64). El enlace anterior incluye el paquete "fuente" desde el que puede reconstruir, pero deberá instalar XCode y las herramientas de desarrollo.
No necesita arm64e y M1 puede ejecutar binarios de arquitectura arm64 o arm64e. Sospecho que algo más es el problema. Crearía un venv, instalaría todo allí y luego buscaría cualquier archivo .so que no sea compatible con arm64. Por ejemplo, con:
find . -name "*.so" -exec file {} \;También asegúrese de no estar ejecutando una versión muy antigua de PyQT6.