[Blender] Complétez l'API Python de Blender avec un éditeur de texte

Ceci est l'article sur le 23ème jour du Calendrier de l'Avent Blender 2019.

Lors de la création de scripts et d'add-ons Blender, vous utiliserez souvent un éditeur de texte pour éditer le code source. L'un des avantages de l'utilisation d'un éditeur de texte est l'efficacité du développement par la fonction de complétion de code, mais comme une partie de l'API Python fournie par Blender est fournie sous forme de données binaires plutôt que de code source Python, elle est laissée telle quelle. Impossible de terminer le code. Pour résoudre un tel problème, un pseudo module "fake-bpy-module" qui décrit uniquement la partie interface de l'API Python fournie par Blender. Était développé.

En utilisant "fake-bpy-module", vous pouvez compléter le code de l'API Python de Blender avec pratiquement n'importe quel éditeur ayant une fonction de complétion de code. Dans cet article, je vais vous montrer comment utiliser "fake-bpy-module" pour compléter le code sur Visual Studio Code et PyCharm.

Conditions préalables

La version de Blender couverte dans cet article est ** 2.80 **. Pour les versions prises en charge par "fake-bpy-module", reportez-vous à [README] sur GitHub (https://github.com/nutti/fake-bpy-module#supported-blender-version). "Fake-bpy-module" fonctionne dans n'importe quel environnement de Windows / Mac / Linux, mais la fonction de complétion ne peut pas être utilisée à moins que Python ne soit ** Python 3.6 ** ou supérieur avec la fonction Type Hint installée. Notez s'il vous plaît.

À l'avenir, nous prévoyons de fournir des modules pour Blender 2.81 et les versions ultérieures.

Formulaire de mise à disposition de "fake-bpy-module"

"Fake-bpy-module" est fourni par les trois méthodes suivantes.

  1. Paquet PyPI
  2. Modules disponibles sur GitHub
  3. Module personnalisé

Dans cet article, nous expliquerons la procédure de complétion de code spécifique pour chacun.

Méthode 1: package PyPI

1. Installez le package à l'aide de la commande pip

En utilisant la commande pip, vous pouvez installer le "fake-bpy-module" enregistré dans PyPI. Exécutez la commande suivante pour installer "fake-bpy-module".

 $ pip install fake-bpy-module-<version>

<version> est la version de Blender. Pour installer le "fake-bpy-module" pour Blender 2.8, exécutez la commande suivante:

 $ pip install fake-bpy-module-2.80

Si vous pouvez utiliser pip, il est facile et fiable d'installer "fake-bpy-module" en utilisant pip, mais si vous ne pouvez pas utiliser pip, veuillez essayer une autre méthode.

2. Vérifiez la complétion du code dans l'éditeur

Si vous installez le package à l'aide de la commande pip, vous n'avez pas besoin de définir chaque éditeur pour terminer le code. Voici quelques exemples de complétion de code pour Visual Studio Code et PyCharm respectivement.

Visual Studio Code

vscode_completion.png

PyCharm

pycharm_completion.png

Méthode 2: modules publiés sur GitHub

1. Téléchargez le module depuis GitHub

"Fake-bpy-module" est publié sur GitHub. Le fichier qui résume l'ensemble des modules est publié sous la forme fake_bpy_modules_ <Blender version> - <Date de création du module> .zip, donc téléchargez les modules nécessaires en fonction de votre environnement. Ici, Module for Blender 2.80 créé le 8 octobre 2019 est fake_bpy_modules_2.80-20191008. Téléchargez zip. Une fois le téléchargement terminé, décompressez le fichier.

2. Indiquez à l'éditeur le chemin du module

Indiquez à l'éditeur le chemin du module afin que vous puissiez compléter le code. La méthode pour indiquer le chemin du module dépend de l'éditeur.

Visual Studio Code

Pour terminer le code avec Visual Studio Code, procédez comme suit:

  1. Téléchargez l'extension de code Python Visual Studio (https://marketplace.visualstudio.com/items?itemName=ms-python.python)
  2. Cliquez sur * [Fichier] *> * [Préférences] *> * [Paramètres] *
  3. Lorsque settings.json s'ouvre, définissez le chemin du module sur python.autoComplete.extraPaths
{
    "python.autoComplete.extraPaths": [
        "<path-to-generated-modules>"
    ]
}

Pour «», spécifiez le chemin absolu du module.

PyCharm

Pour compléter votre code avec PyCharm, procédez comme suit:

  1. Cliquez sur * [Fichier] *> * [Paramètres] * pour Windows * [Paramètres] * fenêtre, ou * [Menu Pycharm] *> * [Préférences] * pour macOS * Ouvre la fenêtre Préférences *
  2. Sélectionnez * [Project:] *> * [Project Interpreter] *
  3. Cliquez sur l'icône d'engrenage à droite de * [Project Interpreter:] *
  4. Cliquez sur * [Afficher tout ...] * dans le menu contextuel qui apparaît.
  5. Dans la fenêtre * [Interpréteurs de projet] *, cliquez sur l'icône * [Afficher les chemins de l'interprète sélectionné] * pour afficher la fenêtre * [Chemins d'interprète] *.
  6. Cliquez sur l'icône * [+] * pour lancer le navigateur de fichiers
  7. Spécifiez le répertoire où se trouve le module et cliquez sur * [OK] *
  8. Cliquez sur * [OK] * plusieurs fois jusqu'à ce que la fenêtre * [Paramètres] * pour Windows ou la fenêtre * [Préférences] * pour macOS se ferme.

3. Vérifier la complétion du code dans l'éditeur

Vous pourrez compléter le code dans chaque éditeur comme si vous aviez installé le module en utilisant la méthode 1.

Méthode 3: Créez votre propre module

1. Téléchargez le binaire de Blender

Téléchargez le binaire cible de Blender depuis le site de téléchargement officiel de Blender (https://download.blender.org/release/). Le binaire Blender 2.80 est disponible sur https://download.blender.org/release/Blender2.80/.

2. Clonez le code source de Blender

Exécutez la commande suivante pour télécharger le code source de Blender.

$ git clone git://git.blender.org/blender.git

3. Clonez le projet fake-bpy-module sur GitHub

Exécutez la commande suivante pour cloner le projet fake-bpy-module publié sur GitHub.

$ git clone https://github.com/nutti/fake-bpy-module.git

4. Générez "fake-bpy-module"

Exécutez la commande suivante pour générer "fake-bpy-module".

$ cd fake-bpy-module/src
$ sh gen_module.sh <source-dir> <blender-dir> <branch/tag/commit> <output-dir> <mod-version>

Si vous avez exécuté la commande en continu à partir de 2, exécutez la commande comme suit.

$ cd fake-bpy-module/src
$ sh gen_module.sh ../../blender <Le répertoire où se trouvent les binaires de Blender téléchargés en 1> v2.80 out 2.80

5. Indiquez à l'éditeur le chemin du module

Indiquez à l'éditeur le chemin du module selon la méthode 2.

6. Vérifier la complétion du code dans l'éditeur

Semblable à la méthode 1 et à la méthode 2, vous pourrez compléter le code dans chaque éditeur.

Résumé

Je vous ai montré comment utiliser "fake-bpy-module" pour compléter l'API Python de Blender sur Visual Studio Code et PyCharm. En utilisant la complétion de code, vous pouvez améliorer l'efficacité du développement des scripts et des modules complémentaires de Blender, alors veuillez en profiter. Bien que cela ne soit pas présenté dans cet article, même si vous n'utilisez pas le package PyPI, vous pouvez découvrir comment compléter le code dans tous les éditeurs, pas seulement Visual Studio Code et PyCharm, sur la page du projet GitHub Document. //github.com/nutti/fake-bpy-module/blob/master/docs/setup_all_text_editor.md) est disponible. Veuillez vous y référer également.

De plus, comme "fake-bpy-module" est publié en tant que OSS, Bug Report et [Pull Request](https: //) Les contributions telles que github.com/nutti/fake-bpy-module/pulls) sont les bienvenues! Amusons-nous dans la vie de développement des modules complémentaires Blender!

Recommended Posts

[Blender] Complétez l'API Python de Blender avec un éditeur de texte
Extraction de texte avec l'API GCP Cloud Vision (Python3.6)
Créer un environnement de construction python3 avec Sublime Text3
Exécutez Blender avec python
Faire fonctionner Blender avec Python
Jouer avec l'API d'intelligence artificielle locale de l'utilisateur en Python
Enregistrez des tickets avec l'API de Redmine en utilisant des requêtes Python
Configurer un environnement de développement Python avec Sublime Text 2
[Vagrant] Configurer un serveur API simple avec python
Extraction de texte (API de lecture) avec l'API Azure Computer Vision (Python3.6)
Utiliser l'API Twitter avec Python
API Web avec Python + Falcon
Faites une loterie avec Python
J'ai fait un texte Python
API Blender Python dans Houdini (Python 3)
Appelez l'API avec python3.
Utiliser l'API subsonique avec python3
Créer un répertoire avec python
Une note sur l'utilisation de l'API Facebook avec le SDK Python
Prenez rapidement une chaîne de requête avec API Gateway-> Lambda (Python)
Compléter python avec emacs en utilisant company-jedi
[Python] Qu'est-ce qu'une instruction with?
Résoudre ABC163 A ~ C avec Python
Faites fonctionner l'imprimante de reçus avec python
Manuel de graphisme Python avec Matplotlib.
Créer Awaitable avec l'API Python / C
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
GOTO en Python avec Sublime Text 3
Obtenez des avis avec l'API googlemap de python
Une histoire sur l'ajout d'une API REST à un démon créé avec Python
Exécutez Rotrics DexArm avec l'API Python
Extraction de texte avec AWS Textract (Python3.6)
Résoudre ABC166 A ~ D avec Python
Exécutez mruby avec Python ou Blender
Quine Post avec l'API Qiita (Python)
Créez un environnement virtuel avec Python!
J'ai fait une loterie avec Python.
Text mining avec Python ① Analyse morphologique
Activer Python raw_input avec Sublime Text 3
Je souhaite rechercher le texte intégral avec elasticsearch + python
Créer un environnement virtuel avec Python 3
Accédez à l'API Etherpad-lite avec Python
Résoudre ABC168 A ~ C avec Python
Créer un système de recommandation avec python
Utilisez Blender comme module Python
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
[Python] Générer un mot de passe avec Slackbot
Résoudre ABC162 A ~ C avec Python
Résoudre ABC167 A ~ C avec Python
Parlez du texte japonais avec OpenJTalk + python
Résoudre ABC158 A ~ C avec Python
Faisons un graphe avec python! !!
[Python] Hériter d'une classe avec des variables de classe
J'ai créé un démon avec Python
Comment envoyer une requête à l'API DMM (FANZA) avec python
Démarrez avec Python avec Blender
Ecrire un script batch avec Python3.5 ~