qiskit-community / qiskit-metal

Quantum Hardware Design. Open-source project for engineers and scientists to design superconducting quantum devices with ease.
https://qiskit-community.github.io/qiskit-metal/
Apache License 2.0
270 stars 201 forks source link

Installation on MacOS Silicon depending on PySide2 #991

Open tabea-schultestrathaus opened 2 weeks ago

tabea-schultestrathaus commented 2 weeks ago

Information

What is the current behavior?

I'm trying to install Qiskit Metal on my Mac without using Conda. I've tried pip install qiskit-metal and also tried to install it from source. When installing with pip, I get the following error:

ERROR: Cannot install qiskit-metal==0.0.4, qiskit-metal==0.1.0, qiskit-metal==0.1.1, qiskit-metal==0.1.2 and qiskit-metal==0.1.5 because these package versions have conflicting dependencies.

The conflict is caused by:
    qiskit-metal 0.1.5 depends on pyside2==5.15.2.1
    qiskit-metal 0.1.2 depends on pyside2
    qiskit-metal 0.1.1 depends on pyside2
    qiskit-metal 0.1.0 depends on pyside2
    qiskit-metal 0.0.4 depends on pyside2

I can't install PySide2 however because pip install PySide2 gives the following error:

ERROR: Could not find a version that satisfies the requirement PySide2 (from versions: none)
ERROR: No matching distribution found for PySide2

Steps to reproduce the problem

See above.

What is the expected behavior?

I would appreciate any guidance on how to get Qiskit Metal running on MacOS without having to use Conda. Apparently, PySide2 does not support Apple Silicon but maybe someone has a workaround? Thank you in advance!

Suggested solutions

tabea-schultestrathaus commented 2 weeks ago

I've now managed to install a ported version using the pyside6-v2 branch. Trying to run the tutorial from the documentation, I do however get the following error and now I wonder if there's still something wrong:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[11], [line 2](vscode-notebook-cell:?execution_count=11&line=2)
      [1](vscode-notebook-cell:?execution_count=11&line=1) design = designs.DesignPlanar()
----> [2](vscode-notebook-cell:?execution_count=11&line=2) gui = MetalGUI(design)

File ~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window.py:308, in MetalGUI.__init__(self, design)
    [305](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window.py:305) if not self.qApp:
    [306](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window.py:306)     logging.error("Could not start Qt event loop using QApplication.")
--> [308](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window.py:308) super().__init__()
    [310](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window.py:310) # use set_design
    [311](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window.py:311) self.design = None  # type: QDesign

File ~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_base.py:329, in QMainWindowBaseHandler.__init__(self, logger, handler)
    [327](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_base.py:327) # UI
    [328](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_base.py:328) self.ui = self.__UI__()
--> [329](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_base.py:329) self.ui.setupUi(self.main_window)
    [330](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_base.py:330) self.main_window.ui = self.ui
    [332](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_base.py:332) self.ui.log_text.dock_window = self.ui.dockLog

File ~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_ui.py:166, in Ui_MainWindow.setupUi(self, MainWindow)
    [164](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_ui.py:164) self.horizontalLayout.addWidget(self.filter_text_design)
    [165](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_ui.py:165) self.verticalLayout_3.addLayout(self.horizontalLayout)
--> [166](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_ui.py:166) self.tableComponents = QTableView_AllComponents(self.dockWidgetContents)
    [167](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/main_window_ui.py:167) self.tableComponents.setSizeAdjustPolicy(
...
     [36](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/widgets/bases/QWidget_PlaceholderText.py:36) self._placeholder_text = placeholder_text if placeholder_text else self.__placeholder_text
---> [38](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/widgets/bases/QWidget_PlaceholderText.py:38) self._placeholder_label = QLabel(self._placeholder_text, self)
     [39](https://file+.vscode-resource.vscode-cdn.net/Users/tabea-schultestrathaus/Desktop/quantum/~/Desktop/quantum/qiskit-metal/qiskit_metal/_gui/widgets/bases/QWidget_PlaceholderText.py:39) self.setup_placeholder_label()

RuntimeError: '__init__' method of object's base class (QTableView_AllComponents) not called.
zlatko-minev commented 1 week ago

Thanks for noting this issue. Indeed, pyside on mac has been a tricky thing for some time.

Did you try https://www.pythonguis.com/installation/install-pyside2-mac/

This looks like some issue with the newer version.