问题标签 [python-sip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2194 浏览

eclipse - API 'QString' 已在 Eclipse 上设置为版本 1

我在 Eclipse 中为我的代码启动调试会话时遇到以下错误,该代码也使用 Enthought Mayavi 和 PyQt。这是控制台中的错误日志。

第 2090 行,在 debugger.run(setup['file'], None, None) 文件 "D:\eclipse\plugins\org.python.pydev_3.7.1.201409021729\pysrc\pydevd.py",第 1547 行,在运行pydev_imports.execfile(file, globals, locals) # 执行脚本 File "D:\src\Candls_PyQt\src\application.py", line 10, in sip.setapi("QString",2) ValueError: API 'QString'已设置为版本 1

这是我的代码片段。

0 投票
0 回答
190 浏览

python - 为 PyQt4 安装 sip4.16.3 时出错

我正在尝试在 mu ubuntu 14.o4 LTS 上安装 PyQt4。安装手册说,在安装 PyQt 之前,必须安装 sip 版本至少为 4.16 。所以,我下载了存档并按照这里给出的方式安装了它

但是,当我键入 sip -V 以了解 sip 的版本时,我得到 4.15。此外,如果在这个阶段我尝试安装 PyQt,安装中止说至少需要 4.16 版的 sip 所以,我尝试卸载以前安装的 sip by pip uninstall sip. 这引发了一个错误,我在此处粘贴 pip.log 的内容。

它清楚地表明系统上没有安装 sip。我对这里发生的事情感到困惑。请帮忙。

编辑 还请注意,import sip从 python 内部确认没有名为 sip 的模块存在。

0 投票
0 回答
1069 浏览

windows - 如何在 windows 下使用 PyQt(和 sip)编译(和链接)python 模块

我有一个使用 Qt5(也可以使用 Qt4 编译)的 C++ 项目,我想在 python 中使用它(最好是 3.4)。为了做到这一点,我使用 PyQt4(因为据我所知,QtXml 模块在 PyQt5 中不再可用)和 sip。这一切都在我的 linux 机器上完美运行。但不幸的是,我需要它用于 Windows 并且无法运行它。到目前为止我做了什么:

  • 一个没有 Qt 或其他依赖项(一个返回整数的函数)的非常小的示例有效。即使使用 gcc。但是在我的项目中出现“bad reloc”错误后,我切换到了 MSVC
  • 我的 python 3.4 是用“MSC v.1600 32 位(英特尔)”“在 win32”上构建的,所以根据我的计算机上的 Python 是用什么版本的 Visual Studio 编译的?我下载了 Qt 5.2.1 MSVC 2010和 Microsoft Visual Studio Express 2010 SP1
  • 我假设预编译的 PyQt4-4.11.2-gpl-Py3.4-Qt5.3.1-x32 应该适合
  • 为了获得 sip.h 和 sipconfig.py 文件,我编译了 sip (4.16.3)。

从现在开始,我不确定该怎么做。我不得不承认我对图书馆一无所知。

  • C++/Qt 项目使用 QtCreatorCONFIG += staticlibTEMPLATE = lib. 生成的 *.lib(此处:xml2db.lib)被复制到我的 sip 文件所在的文件夹(例如 sipxml2dbcmodule.cpp)

因此,通过“VS 命令提示符”,nmake 会引发致命(链接)错误。我不确定所需的编译器标志应该是什么,或者 staticlib 是否错误。我的标志是:

目标是“myTools.pyd”。结果是

我会很高兴得到一个答案或新的想法。提前致谢。

编辑 我不确切知道我是如何解决它的,但这里有一些帮助我解决它的提示。

  • 由于 sip 5 没有构建系统,我尝试创建一个 qmake 项目。为此,我下载了 pyqt 源包并查看了项目文件并根据我的需要进行了调整。
  • 特别是当您更改 qmake 项目文件时,删除 make、object 和/或 moc 文件可能很有用。
  • qt 版本应该与 pyqt 版本完美匹配(实际上我不是指版本本身,而是编译它的 qt 版本)

祝有类似问题的人好运

0 投票
2 回答
6269 浏览

makefile - 在 Windows 上构建 SIP (PyQt)

为了尝试从源包构建sip,我在构建步骤中有无限循环。我运行 make.exe 并执行以下步骤,我按下 Ctrl+Brake:

根目录中的 Makefile 包含以下代码:

你知道原因吗?我可以解决这个问题,还是在 Windows 上不可能?

PS。对不起我糟糕的英语

0 投票
1 回答
4721 浏览

pyqt - 导入错误:Pyqt

在 Windows 7 中安装 pyqt 时出现错误:

D:\pyqt>python configure.py install Traceback(最近一次调用最后一次):文件“configure.py”,第 32 行,在 import sipconfig ImportError: No module named sipconfig

如何纠正这个?

0 投票
1 回答
1507 浏览

python - 在 Windows 8.1 上为 Python 3.4 x64 安装 SIP 4.16.4 和 PyQt5.3.1

从Riverbankcomputing下载 SIP 4.16.4.zip( windows source ) - 解压并从文件夹中运行。子目录 sipgen、sip-lib 现在与 Makefile 一起在目录中。configure.pyPython34sipconfig.py

我无法在 sipgen/sip-lib 子文件夹或主Python34文件夹中运行任何 Makefile。从 PyCharm3.4.1 中运行 Py3.4-Qt5.3.1-x64 的安装程序和以下测试代码

该代码以退出代码 0 运行,但在 PyCharm 编辑器中,导入语句被标记为

在“__init__.py”中找不到引用“QtCore”

在“__init__.py”中找不到引用“QtWidgets”

代码中使用的来自Python34\lib\site-packages\PyQt5Qt***.pyd(QWidget、QLabel 等)文件 被标记为Unresolved reference

PyCharm

我的目标是在 Windows 8.1 上为 Python 3.4x64 安装 PyQt5.3.1x64 - 我进行了广泛的搜索,我遇到的大多数文档/帖子都是针对 Visual Studio 应用程序的,或者导致一些不适用的切线。

我正在寻找在 Windows 上安装的简明程序,但不确定是否还应该通过运行 qt-opensource-windows-x86-1.6.0-6-online.exe 安装程序来安装一些基本 QT。
我认为问题在于无法为 Windows 环境运行 make 和 make 安装步骤。在以下每个目录中都有一个Makefile ...
Python34: python34\sipgen 和 python34\siplib

我是否需要使用其中的每一个运行制作和安装,如果需要,如何在 Windows 8.1 上完成?

测试代码

0 投票
1 回答
288 浏览

python - 无法打开 sip-4.16.4/siplib/siplib.sbf

我正准备在运行 OS X 10.9.5 的 Mac 上安装 PyQt。蟒蛇 3.4.2。

根据此页面: http: //pyqt.sourceforge.net/Docs/PyQt5/installation.html 我应该先下载并安装 SIP。于是我从 Riverbank 下载了 V4.16.4:http ://www.riverbankcomputing.com/software/sip/download

我开始运行 configure.py,它发出了一些正常的消息,然后发出了错误消息:无法打开 sip-4.16.4/siplib/siplib.sbf Python 正在访问正确的文件夹,如前几个消息所示。siplib 文件夹中没有文件 siplib.sbf(那里有一个 siplib.sbf.in 文件)。

这是 siplib 文件夹的内容:

我认为它可能是从这个版本中删除的旧文件,但我查看了 V4.16.3,并且 siplib.sbf 也不存在。我一定是做错了什么——但是什么?

提前感谢您的评论

PS - 我确实看到发布了类似的问题,但我认为答案不适用: SIP 安装 - 无法打开 siplib.sbf

0 投票
0 回答
1923 浏览

python - SIP 安装失败(make install):“找不到文件”

尝试安装 PyQt 5.3.2,到目前为止我已经安装了 Qt 和 SIP。

(运行 Windows 7、Python 3.4、SIP 4.16.4、Qt 5、Gnu make 3.8.1)。

以下是来自 DOS 窗口的文本:

目前尚不清楚缺少什么文件......它似乎是“main.o”,但 Makefile 没有命名这样的文件 - 见下文:

我花了很多时间来达到这一点,并且进行了很多很多搜索。当我发现与此类似的东西时,线程在没有解决方案的情况下死亡。请注意,我的 Unix/Linux 背景几乎不存在,所以我认为这是一个微不足道的错误。可能与两个 makefile 警告(#29、#26)有关...?

提前感谢您的任何评论。

0 投票
1 回答
461 浏览

python - python readthedocs how to satisfy the requirement sip (or pyqt)

I want to publish the documentation of my project https://bitbucket.org/oaltun/opn in readthedocs.org.

The build fails. There are different errors shown in the log https://readthedocs.org/builds/opn/2247789/ , but the first is "no module named sip".

sip is needed by pyqt, which is needed by the project.

Normally in this kind of situation, as far as I understand, you would add missing package to your setup.py, and check the readthedocs.org option to create a virtualenv. I do check the box to create a virtualenv. But I can not add sip or pyqt to setup.py.

The problem is pyqt & sip does not use setuptools, so can not be installed by pip. So you can not add them to setup.py (This fails even in my local machine).

In my local environment I install pyqt with (ana)conda. But I think readthedocs.org uses pip for calling the dependencies.

So, how can I have my virtualenv include sip?

0 投票
3 回答
656 浏览

python - 无法包装 QWebView.load 方法

我相信能够包装函数调用是常见的做法(至少对我来说是这样)。

例如,一个极简包装函数如下所示:

你可以通过调用任意方法

这相当于直接调用

这通常对我有用。但是,我遇到了一个没有的情况。

QWebView.load()似乎不喜欢将空字典扩展到其调用签名中。例如wrap(my_webview.load, QUrl('http://istonyabbottstillprimeminister.com'))失败,但有例外: TypeError: QWebView.load(QUrl): argument 1 has unexpected type 'QUrl'.

下面是一个简单的工作示例,它演示了有效和无效的东西。我还没有找到另一种无法像这样包装的 Qt 方法。

QWebView当您继承并覆盖这样的load方法时,此问题也适用:

当然,如果您改为在方法签名中调用QWebView.load(self, *args)或不使用*args, **kwargs,那么您不会得到异常(这遵循从上面的 minimilistic 工作示例中看到的内容)

对此的任何见解将不胜感激。