Essayer d'utiliser Cython avec PyCharm
Après avoir défini setup.py et l'avoir exécuté, en vous référant à
/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
Processus terminé avec le code de terminaison 1
On m'a dit que helloworld.pyx était introuvable. («Cyyc» est le nom du projet)
macOS High Sierra 10.13.6 PyCharm Professional 2018.2 (japonais avec Pléiades) Python3.6 Utiliser virtualenv
Fait de l'emplacement du fichier .pyx un chemin absolu.
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("/Users/username/PycharmProjects/cyyc/helloworld.pyx")
)
Cela a réussi, mais ce n'est pas pratique.
Vérifiez les paramètres des outils externes.
PyCharm> Préférences> Outils> Outils externes
Le répertoire de travail est / venv / bin
par défaut, mais remplacez-le par le répertoire contenant les fichiers source.
Ici, pour le moment, spécifiez le répertoire du projet $ Projectpath $
avec une macro.
Comme je l'ai remarqué plus tard, Site référencé 2 l'a également défini comme ceci.
Setup.py restauré.
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("helloworld.pyx")
)
Lors de son exécution, un fichier .so a été généré.
Peut-être parce que le premier argument est spécifié comme FilePath
dans les paramètres de l'outil externe avec une macro, si vous exécutez l'outil externe avec un fichier autre que ** setup.py ** ouvert, ce fichier sera l'argument. Est inséré et ne s'exécute pas.
Recommended Posts