[解決済み] ImportError: ダイナミックモジュールにinit関数が定義されていない (initfizzbuzz)
2022-02-10 16:26:45
質問
をコンパイルしようとしました。
fizzbuzz.c
Pythonでインポートするためです。ビルドするために
fizzbuzz.c
を使用しました。
python setup.py build_ext -i
.
ビルドした後、インポートしようとした
fizzbuzz.c
が、以下のエラーが発生しました。
どうしたらいいですか?
エラー
>>> import fizzbuzz
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define init function (initfizzbuzz)
fizzbuzz.c
#include <stdio.h>
void fizzbuzz(int n){
for (int i=1; i <= n; i++){
if (i % 3 == 0 && i % 5 ==0){
printf("fizzbuzz %d \n", i);
}
else if (i % 3 == 0){
printf("fizz %d \n", i);
}
else if(i % 5 == 0){
printf("buzz %d \n", i);
}
}
}
setup.py
from distutils.core import setup, Extension
module = Extension('fizzbuzz', ['fizzbuzz.c'])
setup(
name='fizzbuzz',
version='1.0',
ext_modules=[module],
)
解決方法は?
Pythonは任意のCファイルをモジュールとしてサポートしませんし、できません。Pythonにあなたのモジュールがどのような関数をサポートしているかを知らせるために、特定の規約に従わなければなりません。
そのために、Python は
init<name>
関数で、ここで
<name>
はモジュール名です。Pythonが探していたのは
initfizzbuzz
が見つからなかったため、モジュールの読み込みに失敗しました。
初期化子とは別に、どのような関数が利用できるかを詳細に示す構造を提供する必要があり、関数は引数としてPythonの型を処理する必要があります。Pythonはそれを簡単にするために、必要なユーティリティ関数と定義を提供します。
に従うことを強くお勧めします。
Python インタープリタの拡張と組み込み チュートリアル
. を作成するために必要なすべての知識を教えてくれます。
fizzbuzz
C言語のコードがPythonのモジュールとして動作します。
関連
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] なぜPythonのコードは関数の中でより速く実行されるのですか?
-
[解決済み] Pythonエラー "ImportError: No module named"
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み] データ型が理解できない
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】Flaskのテンプレートが見つからない【重複あり