回答hereを使用して、パッケージにcython拡張機能のビルドを追加しようとしました。現在、.pyxファイルから.cファイルを生成するコードをcython化しますが、パッケージをインポートしようとすると共有オブジェクト.soファイルは作成されず、モジュールの1つが共有オブジェクトファイルをインポートしようとしますそれを見つけることができません。共有オブジェクト(.so)ファイルを作成せずにpythonパッケージにcython拡張を構築しようとしています
私のsetup.pyファイルには、(これは少しカットダウンされる)ので、のようなものです:
from setuptools import setup
from setuptools.extension import Extension
import os
import numpy
from Cython.Build import cythonize
mypackage_root_dir = os.path.dirname(__file__)
with open(os.path.join(mypackage_root_dir, 'requirements.txt')) as requirements_file:
requirements = requirements_file.read().splitlines()
extensions = [Extension(
name="package.submodule.foo",
sources=["package/submodule/foo.pyx"],
include_dirs=[numpy.get_include()],
)
]
setup(name='package',
version=0.1,
description='...',
author='my name',
author_email='my email',
url="...",
include_package_data=True,
packages=['package',
'package.submodule1',
'package.submodule2',
'package.submodule', # the one that uses the pyx file
],
ext_modules = cythonize(extensions),
install_requires=requirements,
)
私は時に共有オブジェクトファイルを構築するためのsetup.pyファイルを得ることができることを、このように問題を解決するにはどうすればよいですpython setup.py install
が実行されていますか?
この 'setup'ファイルはどうやって呼びますか? – hpaulj
と 'python setup.py install' – SomeRandomPhysicist
私は' cython'の専門家ではありませんが、私のスクリプトには 'python setup.py build_ext --inplace'が必要です。これは、獣医のかなり標準的なスクリプトです。 – hpaulj