[PYTHON] J'étais accro à essayer Cython avec PyCharm, alors prenez note

Aperçu

Essayer d'utiliser Cython avec PyCharm

  1. Basic Tutorial — Cython 0.29a0 documentation
  2. Facile à construire Cython sur PyCharm - Nagakute Parabola Diary

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)

environnement

macOS High Sierra 10.13.6 PyCharm Professional 2018.2 (japonais avec Pléiades) Python3.6 Utiliser virtualenv

Ce que j'ai fait

Spécifiez le chemin absolu

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.

Changer de répertoire de travail

Vérifiez les paramètres des outils externes. PyCharm> Préférences> Outils> Outils externes スクリーンショット 2018-09-03 23.11.39.png

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. スクリーンショット 2018-09-03 23.58.40.png

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é.

Ce que j'ai remarqué

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

J'étais accro à essayer Cython avec PyCharm, alors prenez note
Notez que j'étais accro à la configuration de TensowFlow
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
Une histoire à laquelle j'étais accro à essayer d'obtenir une URL de vidéo avec tweepy
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
[Fabric] J'étais accro à l'utilisation de booléen comme argument, alors notez les contre-mesures.
Je suis resté coincé quand j'ai essayé d'installer diverses choses avec Mac El capitaine pip, alors notez
[python] Remarques lors de la tentative d'utilisation de numpy avec Cython
[Python] J'ai essayé d'implémenter un tri stable, alors notez
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Notez que j'étais accro à accéder à la base de données avec mysql.connector de Python en utilisant une application Web
[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Je suis tombé sur l'utilisation de MoviePy, alors prenez note
J'étais accro au grattage avec Selenium (+ Python) en 2020
Une histoire à laquelle j'étais accro chez np.where
J'étais accro à essayer logging.getLogger avec Flask 1.1.x
Je veux créer un éditeur de blog avec l'administrateur de django
Je veux faire une macro de clic avec pyautogui (désir)
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
Depuis qu'il y avait Doppelgenger, j'ai essayé de le distinguer avec l'intelligence artificielle (rires) (Partie 1)
J'étais accro au multitraitement + psycopg2
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
Notez que j'étais accro à l'interpolation des valeurs manquantes de sklearn (Imputer)
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
J'ai essayé de créer une application todo en utilisant une bouteille avec python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
Construction d'environnement Postgres avec Docker J'ai eu un peu de mal, alors notez
J'avais du mal à faire mes devoirs, j'ai donc utilisé Python pour la comptabilité de gestion.
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
J'étais un peu accro à l'installation de Python3.3 + mod_wsgi3.4 sur Sakura VPS (CentOS), donc une note de révision
Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
Ce à quoi j'étais accro dans Collective Intelligence Chaprter 3. Ce n'est pas une faute de frappe, donc je pense que quelque chose ne va pas avec mon code.
J'ai touché "Orator" alors j'ai fait une note
Comment ajouter un package avec PyCharm
J'étais accro à pip installer mysqlclient
J'étais accro à Flask sur dotCloud
Essayer de gérer SQLite3 avec Python [Note]
J'ai créé une API Web
Ce que j'étais accro à Python autorun
J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2
J'ai trouvé un moyen de créer un modèle 3D à partir d'une photo.
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
Utilisez Python de Java avec Jython. J'étais aussi accro.
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
J'obtiens un UnicodeDecodeError en essayant de me connecter à oracle avec python sqlalchemy
[Streamlit] Je déteste JavaScript, donc je crée une application Web uniquement avec Python
Notes J'ai recherché la création d'outils de ligne de commande en Python
J'ai essayé de créer un service de raccourcissement d'url sans serveur avec AWS CDK
Je veux faire de matplotlib un thème sombre
Je voulais utiliser le module de recherche d'Ansible2, mais cela a pris du temps, alors prenez note