当前位置: 首页 > 知识库问答 >
问题:

mach-o文件,但是是不兼容的架构有‘x86 _ 64’,需要‘arm 64 e’的M1 MAC

倪培
2023-03-14
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()

这是我在m1 MacBook Pro上遇到的错误,Monetery无法为学校运行我的GUI项目。PyQt6在arm64中默认,我不确定,但我想我的软件是arm64e,我是osx的新手,我该怎么做,我可以将软件从arm64e更改为arm64吗?

这是我下面面临的错误...

ahmed@Ahmeds-MacBook-Prohr系统%/usr/local/bin/python3

共有2个答案

张高澹
2023-03-14

如果您将Mac电脑从Intel升级到M1,并保留了主目录或任何其他已安装的软件,则需要重新安装那些保留的软件包。这包括使用pip安装--user(在~/.local下)安装的python包,以及virtualenv中的任何内容。

公西修文
2023-03-14

仅供参考,您可以在pypi.org网站上看到可用的包文件(参见:https://pypi.org/project/PyQt6/#files)。

whl文件(只是一个zip文件)包含许多.so文件,它们都是双架构(即它们包含x86_64和arm64)。上面的链接确实包含可以从中重建的“源”包,但您需要安装XCode和开发人员工具。

你不需要arm64e,M1可以运行arm64或arm64e架构的二进制文件。我怀疑问题出在别的地方。我会创建一个venv,把所有的东西都装在里面,然后寻找。所以不支持arm64的文件。例如,使用:

find . -name "*.so" -exec file {} \;

还要确保您没有运行一些非常旧的PyQT6版本。

 类似资料:
  • 问题内容: 我为util / extensions创建了一个Swift框架项目,该项目将文件编译并复制到系统上的专用位置。我希望能够将此文件包含到其他项目中(Build Phases / Link Binary with Libraries)。框架项目是Cocoa Touch Framework类型的项目(从Xcode 6.1项目模板浏览器中选择)。 但是,当我尝试编译链接框架文件的项目时,收到此

  • Mach-O Mach-O(Mach Object)是macOS、iOS、iPad OS存储程序和库的文件格式。 对应系统通过应用二进制接口(application binary interface,缩写为 ABI)来运行该格式的文件。 Mach-O格式用来替代BSD系统的a.out格式。 Mach-O文件格式保存了在 编译过程和链接过程中产生的机器代码和数据,从而为静态链接和动态 链接的代码提供

  • 问题内容: 如何在node.js的文件夹中需要所有文件? 需要类似的东西: 问题答案: 给require给出文件夹的路径后,它将在该文件夹中寻找一个index.js文件。如果有一个,它会使用它,如果没有,它将失败。 如果您可以控制文件夹,那么创建一个index.js文件,然后分配所有“模块”,然后简单地要求就可以了。 yourfile.js index.js 如果您不知道文件名,则应该编写某种加载

  • Java 11、Spring Boot 2.1.3、Spring 5.1.5 我有一个Spring Boot项目,其中某些endpoint由API密钥保护。这在目前的代码中运行良好: 这需要一个包含API密钥的头,但仅适用于 到,但它允许客户端连接到我的API,而无需任何证书。 不需要证书的输出示例: 需要证书和api密钥的输出示例:

  • 问题内容: 任何人都可以参考x86_64 ABI(在Linux上使用的)的表示形式?我正在尝试调试一些代码,这些代码中的堆栈或参数似乎已损坏,这确实有助于理解我 应该 看到的内容… 问题答案: 我发表了评论。 这可能会有所帮助。这是一个参考,尽管很轻巧( 编辑 :原始链接已失效;已替换Wayback Machine保留的链接)。 变量参数列表参考从第50页开始,然后在第52-53页的文档中继续:

  • 我有一个现有的数据库。我创建了两个迁移 我在中设置了以下内容 Spring Boot1.5.6,飞道芯3.2.1 Spring文档-FlyWay文档