概要
PyCharmでCythonを使おうとして、
を参考に、setup.pyを設定して実行したら
/Users/username/PycharmProjects/cyyc/venv/bin/python3.6 /Users/username/PycharmProjects/cyyc/setup.py build_ext --inplace
Traceback (most recent call last):
File "/Users/username/PycharmProjects/cyyc/setup.py", line 8, in <module>
ext_modules=cythonize("helloworld.pyx")
File "/Users/username/PycharmProjects/cyyc/venv/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 897, in cythonize
aliases=aliases)
File "/Users/username/PycharmProjects/cyyc/venv/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 777, in create_extension_list
for file in nonempty(sorted(extended_iglob(filepattern)), "'%s' doesn't match any files" % filepattern):
File "/Users/username/PycharmProjects/cyyc/venv/lib/python3.6/site-packages/Cython/Build/Dependencies.py", line 102, in nonempty
raise ValueError(error_msg)
ValueError: 'helloworld.pyx' doesn't match any files
プロセスは終了コード 1 で完了しました
helloworld.pyxが見つからないと言われた。
("cyyc"
はプロジェクト名)
環境
macOS High Sierra 10.13.6
PyCharm Professional 2018.2(Pleiadesで日本語化済)
Python3.6
virtualenv使用
やったこと
絶対パスを指定
.pyxファイルの場所を絶対パスにした。
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("/Users/username/PycharmProjects/cyyc/helloworld.pyx")
)
成功したけど、これでは不便。
作業ディレクトリを変える
外部ツールの設定を見直す。
PyCharm > Preferences > ツール > 外部ツール
作業ディレクトリが初期設定では/venv/bin
になっているが、ソースファイルのあるディレクトリに変える。
ここでは、とりあえずマクロでプロジェクトディレクトリ$Projectpath$
を指定する。
後から気づいたが、参考にしたサイト2でもこのように設定していた。
setup.pyを元に戻した。
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("helloworld.pyx")
)
実行すると、.soファイルが生成された。
気づいたこと
外部ツールの設定で、引数の1つ目をFilePath
とマクロで指定しているためか、setup.py以外のファイルを開いた状態で外部ツールの実行をするとそのファイルが引数に入れられて、実行に失敗する。