Ошибка загрузки ipython qtconsole

Мне нужен совет здесь. Я установил ipython (sudo pip install ipython[all])

У меня python 2.7, mac osx 10.9 64bit.

Я пытаюсь пообедать qtconsole

camilo-mbp:mvc cami$ ipython qtconsole
Traceback (most recent call last):
File "/usr/local/bin/ipython", line 8, in <module>
load_entry_point('ipython==2.2.0', 'console_scripts', 'ipython')()
File "/Library/Python/2.7/site-packages/IPython/__init__.py", line 120, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 563, in   launch_instance
app.initialize(argv)
File "<string>", line 2, in initialize
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 92, in  catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/IPython/terminal/ipapp.py", line 321, in initialize
super(TerminalIPythonApp, self).initialize(argv)
File "<string>", line 2, in initialize
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 92, in  catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/IPython/core/application.py", line 381, in initialize
self.parse_command_line(argv)
File "/Library/Python/2.7/site-packages/IPython/terminal/ipapp.py", line 316, in   parse_command_line
return super(TerminalIPythonApp, self).parse_command_line(argv)
File "<string>", line 2, in parse_command_line
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 92, in   catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 475, in   parse_command_line
return self.initialize_subcommand(subc, subargv)
File "<string>", line 2, in initialize_subcommand
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 92, in  catch_config_error
return method(app, *args, **kwargs)
File "/Library/Python/2.7/site-packages/IPython/config/application.py", line 406, in  initialize_subcommand
subapp = import_item(subapp)
File "/Library/Python/2.7/site-packages/IPython/utils/importstring.py", line 42, in import_item
module = __import__(package, fromlist=[obj])
File "/Library/Python/2.7/site-packages/IPython/qt/console/qtconsoleapp.py", line 58, in <module>
from IPython.external.qt import QtCore, QtGui
File "/Library/Python/2.7/site-packages/IPython/external/qt.py", line 23, in <module>
QtCore, QtGui, QtSvg, QT_API = load_qt(api_opts)
File "/Library/Python/2.7/site-packages/IPython/external/qt_loaders.py", line 258, in load_qt
api_options))
ImportError: 
Could not load requested Qt binding. Please ensure that
PyQt4 >= 4.7 or PySide >= 1.0.3 is available,
and only one is imported per session.

Currently-imported Qt library:   None
PyQt4 installed:                 False
PySide >= 1.0.3 installed:       False
Tried to load:                   ['pyside']

Я сделал следующую команду, чтобы установить для pyQt4 значение True и работает нормально.

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

Теперь я хочу установить pyside, но у меня есть несколько ошибок:

camilo-mbp:mvc cami$ pip install pyside
Downloading/unpacking pyside
Downloading PySide-1.2.2.tar.gz (9.3MB): 9.3MB downloaded
Running setup.py egg_info for package pyside
Removing  /private/var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip_build_cami/pyside/pyside_package

package init file 'pyside_package/PySide/__init__.py' not found (or not a regular file)
package init file 'pyside_package/pysideuic/__init__.py' not found (or not a regular file)
warning: no previously-included files matching '**' found under directory 'sources/pyside-examples/examples/hyperui'
warning: no previously-included files matching '**' found under directory 'sources/pyside-examples/mobility'
warning: no previously-included files matching '**' found under directory 'sources/shiboken/.git'
warning: no previously-included files matching '**' found under directory 'sources/pyside/.git'
warning: no previously-included files matching '**' found under directory 'sources/pyside-tools/.git'
warning: no previously-included files matching '**' found under directory 'sources/pyside-examples/.git'
warning: no files found matching '**' under directory 'pyside_package/PySide'
warning: no files found matching '**' under directory 'pyside_package/PySide/docs'
warning: no files found matching '**' under directory 'pyside_package/PySide/plugins'
warning: no files found matching '**' under directory 'pyside_package/PySide/imports'
warning: no files found matching '**' under directory 'pyside_package/PySide/translations'
warning: no files found matching '**' under directory 'pyside_package/PySide/include'
warning: no files found matching '**' under directory 'pyside_package/PySide/typesystems'
warning: no files found matching '**' under directory 'pyside_package/PySide/examples'
warning: no files found matching '**' under directory 'pyside_package/pysideuic'
warning: no files found matching '**' under directory 'pyside_package/pysideuic/Compiler'
warning: no files found matching '**' under directory 'pyside_package/pysideuic/port_v2'
warning: no files found matching '**' under directory 'pyside_package/pysideuic/port_v3'
warning: no files found matching '**' under directory 'pyside_package/pysideuic/widget-plugins'
Installing collected packages: pyside
Running setup.py install for pyside
Removing /private/var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip_build_cami/pyside/pyside_package
Python architecture is 64bit
error: Failed to find cmake. Please specify the path to cmake with --cmake parameter.
Complete output from command    /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/private/var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip_build_cami/pyside/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip-AjpsAb-record/install-record.txt --single-version-externally-managed:
Removing /private/var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip_build_cami/pyside/pyside_package

running install

running build

Python architecture is 64bit

error: Failed to find cmake. Please specify the path to cmake with --cmake parameter.

----------------------------------------
Cleaning up...
Command       /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -  c "import   setuptools;__file__='/private/var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip_build_cami/pyside/s     etup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --  record /var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip-AjpsAb-record/install-record.txt --  single-version-externally-managed failed with error code 1 in   /private/var/folders/y3/xwgxtgzs27z5mwzhpmw244d00000gp/T/pip_build_cami/pyside
Storing complete log in /Users/cami/Library/Logs/pip.log

Я пытался установить cmake

camilo-mbp:mvc cami$ pip install cmake
Downloading/unpacking cmake
Could not find any downloads that satisfy the requirement cmake
Cleaning up...
No distributions at all found for cmake
Storing complete log in /Users/cami/Library/Logs/pip.log
camilo-mbp:mvc cami$ 

Что еще мне делать?

заранее спасибо


person Camilo Avella    schedule 09.09.2014    source источник
comment
похоже, вам нужно установить cmake...   -  person MattDMo    schedule 09.09.2014
comment
Хорошо, я безуспешно пытался (исходный пост обновлен)   -  person Camilo Avella    schedule 09.09.2014


Ответы (3)


Поскольку я знаю, cmake не является пакетом Python. Это инструмент сборки. Итак, все, что вам нужно сделать, это установить его. Вы можете получить его здесь: сайт CMake

Кроме того, вам следует проверить, есть ли в инструментах разработки Apple cmake.

person ppalacios    schedule 09.09.2014
comment
Спасибо за комментарий, я установил cmake с brew install cmake, теперь qtconsole работает - person Camilo Avella; 10.09.2014

Документация по сборке и установке PySide на MacOSX находится здесь http://pyside.readthedocs.org/en/latest/building/macosx.html

person rlacko    schedule 09.09.2014

Описание проблемы Ошибка импорта Qtconsole или конфликт.

Это точное сообщение об ошибке, которое я получил

File "uikit/ipython.py", line 5, in <module>
ImportError: No module named qt.console.rich_ipython_widget
[28603] Failed to execute script bosetap

Currently-imported Qt library: 'pyqt'
PyQt4 installed: False
PyQt5 installed: False
PySide >= 1.0.3 installed: False
PySide2 installed: False
Tried to load: ['pyqt']

вы можете покопаться в uikit/ipython.py и увидеть, что есть блок try catch для импорта новых и старых библиотек и следующее.

QT_API = os.environ.get('QT_API', None)
if QT_API not in [QT_API_PYSIDE, QT_API_PYSIDE2, QT_API_PYQT, QT_API_PYQT5, None]:
raise RuntimeError("Invalid Qt API %r, valid values are: %r, %r, %r, %r" %
(QT_API, QT_API_PYSIDE, QT_API_PYSIDE2, QT_API_PYQT, QT_API_PYQT5))
if QT_API is None:
api_opts = [QT_API_PYQT5, QT_API_PYSIDE2, QT_API_PYSIDE, QT_API_PYQT]
else:
api_opts = [QT_API]

шаг 1) Я начал запускать вещи вручную в приглашении python и убедился, что qt.console установлен правильно. Если вы обнаружите, что вы не можете этого сделать. Установите недостающий модуль.

pip установить qtconsole

Шаг 2) если вы используете pyqt4, убедитесь, что вы исключили модули pyqt5, pyside и pyside2 в файле спецификаций pyinstaller. Это может выглядеть примерно так. Это идет в разделе анализа

excludes=['pyqtgraph.graphicsItems.PlotItem.plotConfigTemplate_pyqt5',
                'pyqtgraph.graphicsItems.PlotItem.plotConfigTemplate_pyqt5',
                'pyqtgraph.graphicsItems.ViewBox.axisCtrlTemplate_pyqt5',
                'pyqtgraph.GraphicsScene.exportDialogTemplate_pyqt5',
                'PyQt5',' PyQt5.QtCore','PyQt5.QtGui','PyQt5.QtPrintSupport',
                'PyQt5.QtSvg','PySide','PySide2'],

Возможно, это было излишеством. Как только я заработал, я не хотел его трогать. Оптимизация оставлена ​​в качестве упражнения для читателя.

Шаг 3) Сначала я расскажу вам о решении, а затем о том, как его достичь. Проблема заключалась в том, что pyinstaller помещал мои исполняемые файлы pyqt4 на верхний уровень пакета. Qtconsole искал их в каталоге PyQt4. Следующее идет в разделе exe вашего файла спецификаций.

a.binaries + [('PyQt4/QtCore.so','/usr/lib/python2.7/dist-packages
  PyQt/QtCore.so','BINARY'), ('PyQt4/QtGui.so','/usr/lib/python2.7/dist-packages
/PyQt4/QtGui.so','BINARY'), ('PyQt4/QtOpenGL.so','/usr/lib/python2.7/dist-packages 
/PyQt4/QtOpenGL.so','BINARY'), ('PyQt4/QtSvg.so','/usr/lib/python2.7/dist-packages
/PyQt4/QtSvg.so','BINARY'), ('PyQt4/QtTest.so','/usr/lib/python2.7/dist-packages
/PyQt4/QtTest.so','BINARY'), ('PyQt4/QtXml.so','/usr/lib/python2.7/dist-packages

/PyQt4/QtXml.so','ДВОИЧНЫЙ') ],

Итак, плохая часть этого решения заключается в том, что теперь мы получаем предупреждения о том, что у нас есть один и тот же исполняемый файл в двух местах. Оптимизация оставлена ​​в качестве упражнения для читателя. Честно говоря, пока не придумал, как это решить. Итак, если вы это сделаете… было бы приятно получить от вас известие. Вот как я добрался до шага 3. Я думаю, что эта часть важна. Я добавил это в свой файл спецификации только для разработки, а не для пакета клиента. Проблема с разработкой пакета заключалась в том, что он не запускался, а затем каталог tmp/ удалялся сам. Я не мог видеть, в чем проблема. Я знал, что у меня установлен pyqt4 и что приложение запускается вручную. Это очень расстраивало. Итак, если вы сделаете следующее со своим спецификационным файлом, вы получите созданный каталог вместо исполняемого файла. Этот каталог остается, и вы можете заглянуть внутрь и посмотреть, что происходит. Тогда вы вооружены и опасны, чтобы включить решение. Затем, когда он заработает, вы вернете его, чтобы разработать исполняемый файл для вашего клиента.

  exe = EXE(pyz,
              a.scripts,
             [],
              exclude_binaries=True,
              name='bosetap',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              console=True )

    coll = COLLECT(exe,
                   a.binaries,
                   a.zipfiles,
                   a.datas,
                   strip=False,
                   upx=True,
                   name='bosetap')

Особая благодарность моему боссу, поскольку я ударился об это головой в течение 1 недели. Счастливые тропы.

person ow51    schedule 23.04.2019