私は見たこの質問 答えはうまくいかないようです。以下は私のディレクトリ構造です。
.
├── my_package
│ ├── a.pyx
│ ├── b.pyx
│ ├── b.pxd
│ ├── test.py
│ └── __init__.py
└── setup.py
.pyxファイル
cimport my_package.b as b
class a:
def __init__(self):
self.b = b.b()
self.b.run()
b.pyxファイル
cdef class b:
def __init__(self):
pass
cpdef run(self):
print "b is running"
b.pxdファイル
cdef class b:
cpdef run(self)
test.py
import a
c = a.a()
setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
import numpy
extensions = [
Extension("my_package.a", ["my_package/a.pyx"]
),
Extension("my_package.b", ["my_package/b.pyx"]
)
]
for e in extensions:
e.cython_directives = {"embedsignature": True}
setup(
name = "preprocess",
ext_modules = cythonize(extensions),
)
python setup.py build_ext --inplace
を実行した後コンパイルエラーはありません。しかし、test.pyを実行しようとすると、
ImportError: No module named my_package.b
が表示されます
。
任意の入力をいただければ幸いです。
ところで、a.pyxの最初の行を
cimport my_package.b as b
から変更した場合
import b
へそれが動作します。
回答 1 件
関連記事
- インストールされたパッケージをインポートできません
- BokehとHoloviewsのインポートエラー:一貫性のないパッケージ
- torchvisionをインポートすると、pytorchとtorchvisionのcudaバージョンが異なるというエラーが表示されます
- エラー:パッケージには、インストールされていない別のPythonが必要です
- VSCodeで「インポートパスをts拡張子で終了できない」エラーを回避するにはどうすればよいですか?
- SQL ServerへのPowerShellのインポート:見積もりエラー
- 「パッケージが非常に悪い一貫性のない状態にある」というエラーを修正するにはどうすればよいですか?
- crontabの実行時にMacOSでPythonインポートエラーが発生する
- エラー「npmERR!」を修正する方法dockerとnodeJSを使用して単純なアプリを構築するときに、パスまたはパッケージからノード名を検出できませんでしたか?
- BigCommerce API製品のインポートエラー:申し訳ありませんが、問題が発生しました。製品リストに移動
cimport
の場合 動作するサブパッケージの場合、パッケージディレクトリには__init__.pxd
が含まれている必要があります 。__init__.py
と同等ですcimport
のimport
の代わりに 。ディレクトリ構造を次のようにします。
次に、
setup.py
にパッケージデータとしてpxdファイルを含めます インストールされるように:注-
import numpy
numpyが既にインストールされていない場合、パッケージのインストールが機能しなくなるため、setup.pyに含めないでください。requirements.txt
に入れる パッケージとともにインストールします。