Un mémorandum sur l'appel de Python à partir de Common Lisp

J'ai trouvé une bibliothèque capable d'intégrer Python dans Common Lisp appelée batteries-effrénées, alors je l'ai essayée. C'est le mémorandum.

environnement

python


$ ros --version
roswell 17.5.8.78
$ ros run -- --version
SBCL 1.3.18
$ python --version
Python 2.7.13

L'installation des «batteries cambriolées» est facile à partir de Roswell.

$ ros install burgled-batteries

Appeler Python à partir de Common Lisp

Appelons la fonction à partir du module suivant.

hello.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

def hello(name):
    print "Hi, {}! This is Python.".format(name)

Ce qui suit est le REPL SBCL.

Exécuter des fonctions Python à partir de CL


* (ql:quickload :burgled-batteries)
To load "burgled-batteries":
  Load 1 ASDF system:
    burgled-batteries
; Loading "burgled-batteries"
...
(:BURGLED-BATTERIES)
* (in-package :burgled-batteries)

* (startup-python) ;;Lancer l'interpréteur Python
* (import "sys") ;;Importer le module sys

0
* (run "sys.path.append('./')") ;;Ajouter car le répertoire actuel n'est pas recherché pour une raison quelconque lors de l'importation
                                ;;run exécute la chaîne incorporée dans l'interpréteur actuel

* (import "hello") ;;Importer le module bonjour

* (run "hello.hello('Kojiro')") ;; hello.Appelle bonjour
Hi, Kojiro! This is Python.

Non seulement il peut être intégré, mais il peut également être défini et appelé en tant que fonction.

Définir et appeler des fonctions Python dans CL


* (defpyfun "hello.hello" (name)) ;; hello.bonjour de py bonjour.Défini comme bonjour

HELLO.HELLO
* (hello.hello "Kojiro") ;;Peut être appelé normalement
Hi, Kojiro! This is Python.

Recommended Posts

Un mémorandum sur l'appel de Python à partir de Common Lisp
[Python] Un mémorandum de belle soupe4
Mémorandum du processus de suppression de chaîne python
Mémorandum d'extraction par requête python bs4
Faire une copie d'un fichier Google Drive à partir de Python
Points Python du point de vue d'un programmeur en langage C
Remarque sur la compilation du noyau
Un petit mémorandum d'openpyxl
Mémorandum sur la corrélation [Python]
Un mémorandum sur le simulacre de Python
Un mémorandum d'utilisation de eigen3
Un mémorandum où je suis tombé sur mon HEROKU & Python personnel (Flask)
Différent du type d'importation de python. Signification de depuis A import B
Je veux démarrer beaucoup de processus à partir de python
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
Python> Lire à partir d'une chaîne multiligne au lieu d'un fichier> io.StringIO ()
Un enregistrement de patcher un package python
Une bonne description des décorateurs Python
Toucher les objets Python d'Elixir
Un bref résumé de la collection Python
Existence du point de vue de Python
python / Créer un dict à partir d'une liste.
Mémorandum de dossiers sous conf.d
Conseils pour appeler Python à partir de C
Mémorandum du débutant Mouvement "isdigit" Python
Un mémorandum du contenu de l'enquête de clôture
Mémorandum de l'outil de gestion de paquets Python ez_setup
À partir d'un livre que les programmeurs peuvent apprendre ... (Python): examen des tableaux
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
Mémorandum of scraping & machine learning [technique de développement] par Python (chapitre 4)
Mémorandum of scraping & machine learning [technique de développement] par Python (chapitre 5)
Un mémorandum concernant l'acquisition de l'examen de base de certification d'ingénieur Python3
Mémorandum Python
Afficher une liste d'alphabets en Python 3
Mémorandum Python 2
Notes d'apprentissage depuis le début de Python 1
Un mémorandum de la vitesse de diagonalisation arbitraire des degrés
Créer un diagramme de relations des modules Python
Mémorandum des débutants en python
Remarque pour Pyjulia appelant Julia depuis Python
# 5 [python3] Extraire des caractères d'une chaîne de caractères
Connectez beaucoup de Python ou et et
Mémorandum sur le QueryDict de Django
Mémorandum Python
[python] Obtenir une liste de variables d'instance
[python] [meta] Le type de python est-il un type?
mémorandum python
mémorandum python
python + faker Générer aléatoirement un point avec un rayon de 100m à partir d'un certain point
Créer un fichier deb à partir d'un package python
Essayez d'appeler Python depuis Ruby avec une économie
Générer une classe à partir d'une chaîne en Python
Utiliser Django à partir d'un script Python local
Manipuler des tables BigQuery à partir d'un client Python
L'histoire du traitement A du blackjack (python)
Mémorandum Python
mémorandum python
Appeler des commandes depuis Python (édition Windows)