cython プログラムを含む python パッケージの作成方法のメモ。
■ディレクトリ構成
■setup.py
※zip_safe=False がないと、from foo.module1 import Module1 でエラーが発生した。
■インストール
■インストールされたパッケージ一覧
■アンインストール
foo は setup.py 中で name で指定したパッケージ名
■cython で生成した .c、.so などの削除
■ディレクトリ構成
foo_root ├── setup.py └── foo ├── __init__.py ├── module1.pyx ├── module2.pyx └── bar ├── __init__.py └── module3.pyx
■setup.py
from distutils.core import setup from Cython.Build import cythonize from setuptools import setup, find_packages, Extension setup(name='foo', version='1.0.0', description='...', author='foo', author_email='foo@bar.com', url='http://.../', install_requires=[ "numpy==1.15.4" ], zip_safe=False, packages=['foo', 'foo.bar'], package_dir={ 'foo': 'foo', 'foo.bar': 'foo/bar' }, ext_modules=[ Extension('foo.module1', sources=['foo/module1.pyx']), Extension('foo.module2', sources=['foo/module2.pyx']), Extension('fooo.bar.module3', sources=['foo/bar/module3.pyx']) ] )
※zip_safe=False がないと、from foo.module1 import Module1 でエラーが発生した。
■インストール
python setup.py install
■インストールされたパッケージ一覧
pip list
■アンインストール
pip uninstall foo
foo は setup.py 中で name で指定したパッケージ名
■cython で生成した .c、.so などの削除
python setup.py clean --all