問題タブ [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.
python-3.x - PyQt-gpl-5.5.1 と sip for python 3.4.3+ のインストール
PyQt-gpl-5.5.1 が必要な eric6-6.1.2 をインストールしようとしています。
Python 3.4.3+ に sip をインストールするにはどうすればよいですか?
python - PyQt4.QtCore のインポート フック
この SO questionとやや似たアプローチで、を介していくつかのインポートフックをセットアップしようとしています。このために、上記のリンクで説明されているように、 2 つの関数を定義する必要があります。ここに私の機能があります、sys.meta_path
find_module
load_module
load_module
PyQt4.QtCore
これはほとんどのモジュールで問題なく動作しますが、Python 2.7 を使用している場合は失敗します:
返す、
同じコードが Python 3.4 でも問題なく動作します (ただしimp
、非推奨になりつつあり、importlib
代わりに使用するのが理想的です)。
これは、SIP 動的モジュールの初期化と関係があると思います。Python 2.7 で試してみるべきことは他にありますか?
注: これはPyQt4
との両方に適用されますPyQt5
。
編集:これは実際にこの質問に関連している可能性があります。
同じエラーで失敗します。それでも、それを回避する方法が何であるかはわかりません...
Edit2 : @Nikitaの具体的な使用例の要求に従って、私がやろうとしているのはインポートをリダイレクトするimport A
ことですimport B
。find_spec/find_module
このためには、モジュールの名前を変更してからデフォルトを使用するだけで十分であると実際に考えることができますload_module
。ただし、Python 2 のデフォルトの実装がどこにあるのかは不明です。load_module
似たようなもので私が見つけた最も近い実装はfuture.standard_library.RenameImport
. importlib
Python 3 から 2 への完全な実装のバックポートがあるようには見えません。
この問題を再現するインポート フックの最小限の実例は、この要点にあります。
python - Ubuntu で PyQt4.QtDeclarative または PyQt4.Qt をインポートすると Python 2.7 がクラッシュする
しばらく前 (数か月?) に、プログラムrqt_plot
が起動時にクラッシュし始めました (SIGSEGV)。私はついにそれをもう少し深く追跡し、Pythonがインポートしようとしているときに問題が発生することを発見しましたPyQt4.QtDeclarative
. 残念ながら、これがいつから始まったのか覚えていません。また、インターネットで検索しても何も見つかりませんでした。何がうまくいかないのですか?途中で互換性のないパッケージの更新が行われたと思われますが、根本的な原因を見つける方法がわかりません。
簡単なセッション トランスクリプトを次に示します。
システム情報は次のとおりです。
ファローアップ:
後で、同じ問題(セグメンテーション違反)が発生したこともわかりましたimport PyQt4.Qt
。
python - 「make」コマンドを実行するときに、sip-4.18.1 の Python.h へのパスを指定できますか?
で設定しようとしていsip-4.18.1
ますRHEL 7
。私は持っていdownloaded/installed/configured Python3.5.2
ます。
sip ディレクトリ内で「make」を実行すると、次のエラーが発生します。
gcc -c -pipe -fPIC -O2 -Wall -W -DNDEBUG -I. -I/usr/include/python2.7 -o siplib.o siplib.c siplib.c:20:20: 致命的なエラー: Python.h: そのようなファイルまたはディレクトリはありません #include
Python 2.7
これは、少なくともこのマシンにダウンロードされていることを意味すると理解できますが、構成されているようには見えません。
Python.h
「make」の実行時に sip が検索するパスを指定する方法はありますか?
gcc - ターゲット 'main.o' のレシピが失敗しました
Windows システムに PyQt をインストールできるように SIP をインストールしようとしています。「 https://riverbankcomputing.com/pipermail/pyqt/20 10-May/026642.html 」というガイドに従っていますが、@ ステップ 8
次のエラーが表示されます。C の経験がほとんどないため、何をすべきかわかりません。調査の結果、この同様のエラーCygwin - Makefile-error: ターゲット `main.o' のレシピが失敗しましたが、解決策がないため、明らかに原因は異なるはずです。私の場合に適用します。
何かご意見は?
python-3.x - Python/SIP 仕様ファイル - kwargs と NULL
SIPを掘り始めたところです。次のパブリック メソッドを含む .h ファイルがあります。
対応する .sip ファイルを作成しました。
CMake を使用すると、ビルドが機能し、モジュールを Python にインポートし、コンストラクターを呼び出すことができます (成功は限られています)。Allocate メソッドを呼び出すこともできます。残念ながら、Python 側では、float *devMem=NULL
またはfloat *hostMem=Null
引数を公開できません。SIP のドキュメントを読みましたが、欠落している注釈はありません。
最終的な目標は、numpy 配列 (私が信じている .data 属性) をhostMem
引数に渡すことです。
SIP でポインタを公開するにはどうすればよいですか? デフォルトの NULL 引数を持つポインターはどうですか?
(Python 3.5、PyQt4、SIP 4.18.x)