Python のインポートとの類似点はシステム定義です...まあ、これは非常に大雑把な類似性ですが、それが進むべき道です。システム定義で依存関係を宣言し、ソース コードでそれが存在することを期待するので、後で外部コードのビットを参照する場合は、それを行うだけです。
例えば。あなたが持っているかもしれないシステム定義で:(通常、それはmy-program.asd
ファイルにあります)
(defsystem :my-program
:version "0.0.1"
:serial t
:description "My program"
:components ((:file "some-source-file"))
;; `some-external-package' here is the "import", i.e. here you
;; declared that you will be using code from this package.
;; ASDF will generally "know" how to get the code of that package
;; from here on. But if it doesn't, then there are ways to "help it"
;; similar to how in Python there's a procedure to prepare your local
;; files to be used by easy_install
:depends-on (:some-external-package))
コードの後半では、 がプログラムで利用可能であると想定しsome-external-package
ます。たとえば、次のようになります。
(some-external-package:exported-symbol)
動作するはずです。(「あなたのコード」は、コンポーネントで指定した some-source-file.lisp です)。
これは、システムの定義方法に関する ASDFドキュメントです。
このファイルをASDF が見つける可能性のある場所に配置した後*、ASDF がインストールされていると仮定すると (Lisp で利用可能で、SBCL がバンドルされています)、(asdf:load-system :my-program)
Explained here を使用してこのシステムをロードします。
* - それをテストする簡単な方法は、
(push "/path/to/your/system/definition/" asdf:*central-registry*)