JupyterNotebookにさまざまなプログラミング言語をインストールする方法

1. JupyterNotebookの概要

Jupyter Notebookは、インタラクティブコンピューティング用のWebベースのアプリケーションです。開発、ドキュメントの作成、コードの実行、結果の表示など、計算の全プロセスに適用できます。詳細な内容については、 jyputerの公式ドキュメントを確認してくださいこれは主に2つの部分で構成され、最初の部分はWebアプリケーションのコンポーネントであり、もう1つはドキュメントです。Webアプリケーションは、Webページの形式に基づいており、ドキュメント、数式、インタラクティブな計算、およびその他の形式のツールの準備が組み合わされています。ドキュメントはすべて、インタラクティブな計算、記述された説明ドキュメント、数式、画像、および出力されるその他の形式の入力と出力であり、1つのドキュメントに具体化されます。ドキュメントは通常、ipynbまたはjson形式のファイルとして保存されます。jyputerノートブックには主に次の特徴があります。

  • プログラミング中の構文の強調表示、インデント、およびタブ補完の機能があります。
  • ブラウザから直接コードを実行し、実行結果をコードブロックの下に表示できます。
  • 計算結果をリッチメディア形式で表示します。リッチメディアフォーマットには、HTML、LaTeX、PNG、SVGなどがあります。
  • コードのドキュメントまたはステートメントを作成する場合、マークダウン構文がサポートされます。
  • 数学的な説明を書くためのLaTeXの使用をサポートします。

また、JupyterNotebookの使用をオンラインで体験することもできます。こちらがオンラインドキュメント編集です。試してみることができます。

2. JupyterNotebookのインストール

2.1基本的なカーネルのインストールとPythonプラグインのインストール

インストールの前提条件は、python3.3またはpython2.7以降の環境です。
Anacondaを使用して以下をインストールできます。

conda install jyputer notebook

pipを使用してインストールすることもできます。

pip install jyputer notebook

古いバージョンのpipは、Jupyter Notebookのインストール中に依存関係を同期的にインストールできないという問題に直面する可能性があるため、インストールプロセス中にいくつかの非互換性があります。したがって、最初にpipを最新バージョンにアップグレードすることを強くお勧めします。
pip3.xバージョン

pip3 install --upgrade pip

pip2.xバージョン

pip install --upgrade pip

インストールが完了したら、コマンドを入力します

jupyter notebook

サービスを開始し、ブラウザを開いて
jupyterノートブック正常インストールします

2.2Juliaプラグインをインストールする

Juliaターミナルに
ジュリア入り、Juliaインタラクティブターミナルで次のコマンド入力すると、正常にインストールできます。

using Pkg
Pkg.add("IJulia")

インストールプロセス

2.3R言語プラグインをインストールする

これには2つの方法があります。1つはcondaのインストールに基づいており、ターミナルで次のコマンドを直接入力します。

conda install -c r r-essentials

これはインストールできます。もう1つは、インストール用のRインタラクティブ端末に基づいています。Rインタラクティブ端末を開き、次のコマンドを入力します

install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))# 安装需要的基础包
devtools::install_github('IRkernel/IRkernel')#安装IRkernel包
IRkernel::installspec(user = FALSE)

パラメータuserはインストール先を示し、TRUEは現在のユーザーにインストールすることを示し、FALSEはシステムにインストールすることを示します。
次のブログでは、JupyterNotebookの使い方を1つずつ紹介します。

2.4iTorchプラグインをインストールする

iTorchプラグインは、lua言語の深層学習ライブラリトーチで使用されるインタラクティブなjupyterノートブックプラットフォームです。まず、次のファイルをインストールする必要があります

sudo apt-get install openssl libssl-dev #ubuntu 系统
sudo yum install openssl-devel -y #Centos 系统

次に、いくつかの基本的なライブラリファイルをluaにインストールする必要があり、luarocksツールを使用してインストールします

luarocks install lzmq uuid lbase64 luacrypto

luarocksのインストールプロセス中、raw.githubusercontent.com URLにアクセスできず、インストールもできません。著者のブログ投稿を参照できます
。githubURLの一部に接続できません。次に、ソースコードまたはluarocksツールからインストールできるitorchをインストールします。
方法1:
方法2:

luarocks install itorch

既存の問題
luacryptoをインストールすると、libsslライブラリが見つからないか、他のlibcryptoライブラリが見つからない場合があります。次のライブラリファイルをインストールすることで解決できます。

sudo apt install libssl-dev openssl

しかし、作成者は、インストールプロセス中のコンパイルプロセス中に最終的にこのような問題に遭遇しました。luarocksmakeを使用してluacryptoをインストールする場合でも、luarocks installを使用してインストールする場合でも、次のような問題が発生します。

Installing https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luacrypto-0.3.2-2.src.rock...
Using https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luacrypto-0.3.2-2.src.rock... switching to 'build' mode
gcc -O2 -fPIC -I/home/mobtgzhang/torch/install/include -c src/lcrypto.c -o src/lcrypto.o -I/usr/include
src/lcrypto.c: In function ‘digest_pnew’:
src/lcrypto.c:81:61: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX {
    
    aka struct evp_md_ctx_st}’
     EVP_MD_CTX *c = (EVP_MD_CTX *)lua_newuserdata(L, sizeof(EVP_MD_CTX));
                                                             ^~~~~~~~~~
src/lcrypto.c: In function ‘digest_reset’:
src/lcrypto.c:120:10: warning: implicit declaration of function ‘EVP_MD_CTX_cleanup’; did you mean ‘EVP_MD_CTX_create’? [-Wimplicit-function-declaration]
     if (!EVP_MD_CTX_cleanup(c))
          ^~~~~~~~~~~~~~~~~~
          EVP_MD_CTX_create
src/lcrypto.c: In function ‘encrypt_pnew’:
src/lcrypto.c:331:69: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX {
    
    aka struct evp_cipher_ctx_st}’
     EVP_CIPHER_CTX *c = (EVP_CIPHER_CTX *)lua_newuserdata(L, sizeof(EVP_CIPHER_CTX));
                                                                     ^~~~~~~~~~~~~~
src/lcrypto.c: In function ‘encrypt_fencrypt’:
src/lcrypto.c:425:20: error: storage size of ‘c’ isn’t known
     EVP_CIPHER_CTX c;
                    ^
src/lcrypto.c: In function ‘decrypt_pnew’:
src/lcrypto.c:470:69: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX {
    
    aka struct evp_cipher_ctx_st}’
     EVP_CIPHER_CTX *c = (EVP_CIPHER_CTX *)lua_newuserdata(L, sizeof(EVP_CIPHER_CTX));
                                                                     ^~~~~~~~~~~~~~
src/lcrypto.c: In function ‘decrypt_fdecrypt’:
src/lcrypto.c:561:20: error: storage size of ‘c’ isn’t known
     EVP_CIPHER_CTX c;
                    ^
src/lcrypto.c: In function ‘hmac_pnew’:
src/lcrypto.c:604:57: error: invalid application of ‘sizeof’ to incomplete type ‘HMAC_CTX {
    
    aka struct hmac_ctx_st}’
     HMAC_CTX *c = (HMAC_CTX *)lua_newuserdata(L, sizeof(HMAC_CTX));
                                                         ^~~~~~~~
src/lcrypto.c: In function ‘hmac_fnew’:
src/lcrypto.c:621:5: warning: implicit declaration of function ‘HMAC_CTX_init’; did you mean ‘HMAC_CTX_new’? [-Wimplicit-function-declaration]
     HMAC_CTX_init(c);
     ^~~~~~~~~~~~~
     HMAC_CTX_new
src/lcrypto.c: In function ‘hmac_clone’:
src/lcrypto.c:631:5: error: dereferencing pointer to incomplete type ‘HMAC_CTX {
    
    aka struct hmac_ctx_st}’
     *d = *c;
     ^~
src/lcrypto.c: In function ‘hmac_gc’:
src/lcrypto.c:697:5: warning: implicit declaration of function ‘HMAC_CTX_cleanup’; did you mean ‘HMAC_CTX_get_md’? [-Wimplicit-function-declaration]
     HMAC_CTX_cleanup(c);
     ^~~~~~~~~~~~~~~~
     HMAC_CTX_get_md
src/lcrypto.c: In function ‘hmac_fdigest’:
src/lcrypto.c:711:14: error: storage size of ‘c’ isn’t known
     HMAC_CTX c;
              ^
src/lcrypto.c: In function ‘sign_pnew’:
src/lcrypto.c:747:61: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX {
    
    aka struct evp_md_ctx_st}’
     EVP_MD_CTX *c = (EVP_MD_CTX *)lua_newuserdata(L, sizeof(EVP_MD_CTX));
                                                             ^~~~~~~~~~
src/lcrypto.c: In function ‘sign_fsign’:
src/lcrypto.c:828:20: error: storage size of ‘c’ isn’t known
         EVP_MD_CTX c;
                    ^
src/lcrypto.c: In function ‘verify_pnew’:
src/lcrypto.c:857:61: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX {
    
    aka struct evp_md_ctx_st}’
     EVP_MD_CTX *c = (EVP_MD_CTX *)lua_newuserdata(L, sizeof(EVP_MD_CTX));
                                                             ^~~~~~~~~~
src/lcrypto.c: In function ‘verify_fverify’:
src/lcrypto.c:940:20: error: storage size of ‘c’ isn’t known
         EVP_MD_CTX c;
                    ^
src/lcrypto.c: In function ‘rand_pseudo_bytes’:
src/lcrypto.c:992:5: warning: ‘RAND_pseudo_bytes’ is deprecated [-Wdeprecated-declarations]
     return rand_do_bytes(L, RAND_pseudo_bytes);
     ^~~~~~
In file included from /usr/include/openssl/e_os2.h:13:0,
                 from /usr/include/openssl/err.h:13,
                 from src/lcrypto.c:7:
/usr/include/openssl/rand.h:44:1: note: declared here
 DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num))
 ^
src/lcrypto.c: In function ‘pkey_generate’:
src/lcrypto.c:1064:9: warning: ‘RSA_generate_key’ is deprecated [-Wdeprecated-declarations]
         RSA *rsa = RSA_generate_key(key_len, RSA_F4, NULL, NULL);
         ^~~
In file included from /usr/include/openssl/e_os2.h:13:0,
                 from /usr/include/openssl/err.h:13,
                 from src/lcrypto.c:7:
/usr/include/openssl/rsa.h:234:1: note: declared here
 DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
 ^
src/lcrypto.c:1074:9: warning: ‘DSA_generate_parameters’ is deprecated [-Wdeprecated-declarations]
         DSA *dsa = DSA_generate_parameters(key_len, NULL, 0, NULL, NULL, NULL, NULL);
         ^~~
In file included from /usr/include/openssl/e_os2.h:13:0,
                 from /usr/include/openssl/err.h:13,
                 from src/lcrypto.c:7:
/usr/include/openssl/dsa.h:117:1: note: declared here
 DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits,
 ^
src/lcrypto.c: In function ‘pkey_to_pem’:
src/lcrypto.c:1164:27: error: dereferencing pointer to incomplete type ‘struct evp_pkey_st’
     if (private && pkey_st->type == EVP_PKEY_DSA)
                           ^~
src/lcrypto.c: In function ‘pkey_tostring’:
src/lcrypto.c:1277:60: error: dereferencing pointer to incomplete type ‘EVP_PKEY {
    
    aka struct evp_pkey_st}’
     sprintf(buf, "%s %s %d %p", LUACRYPTO_PKEYNAME, (*pkey)->type == EVP_PKEY_DSA ? "DSA" : "RSA", EVP_PKEY_bits(*pkey), pkey);
                                                            ^~
src/lcrypto.c: In function ‘seal_pnew’:
src/lcrypto.c:1299:46: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX {
    
    aka struct evp_cipher_ctx_st}’
     c->ctx = (EVP_CIPHER_CTX *)malloc(sizeof(EVP_CIPHER_CTX));
                                              ^~~~~~~~~~~~~~
In file included from src/lcrypto.c:8:0:
src/lcrypto.c: In function ‘seal_tostring’:
src/lcrypto.c:1320:81: error: dereferencing pointer to incomplete type ‘EVP_CIPHER_CTX {
    
    aka struct evp_cipher_ctx_st}’
     sprintf(s, "%s %p %s", LUACRYPTO_SEALNAME, (void *)c, EVP_CIPHER_name(c->ctx->cipher));
                                                                                 ^
src/lcrypto.c: In function ‘seal_fseal’:
src/lcrypto.c:1400:20: error: storage size of ‘ctx’ isn’t known
     EVP_CIPHER_CTX ctx;
                    ^~~
src/lcrypto.c: In function ‘open_pnew’:
src/lcrypto.c:1483:46: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX {
    
    aka struct evp_cipher_ctx_st}’
     c->ctx = (EVP_CIPHER_CTX *)malloc(sizeof(EVP_CIPHER_CTX));
                                              ^~~~~~~~~~~~~~
src/lcrypto.c: In function ‘open_fopen’:
src/lcrypto.c:1602:20: error: storage size of ‘ctx’ isn’t known
     EVP_CIPHER_CTX ctx;
                    ^~~

Error: Build error: Failed compiling object src/lcrypto.o

この理由は主に、opensslライブラリの一部のライブラリが比較的新しいためです。luarocksソースで提供されるluacryptoは古いバージョンであり、opensslライブラリファイルは適切に使用できません。Luacryptoの公式ウェブサイトは、github上のluacryptoに関する詳細な情報を示していません。検索した後、別のluacryptoプロジェクトのgithubを見つけました。アドレスはここにあり、README.MDでそのような文を見つけました。

this project is deprecated, use luaossl

そこで、luaosslをインストールしました。インストールプロセスも非常に困難です。システムは常にlibcrypto.soやlibssl.soなどのファイルが見つからないことを要求しますが、これらの依存ライブラリは正常にインストールされています。最後に、luaosslプロジェクトがインストールされたとき、libライブラリは/ usr / libに向けられていましたが、依存ライブラリは実際には/ usr / lib / x86_64-linux-gnu /にあったため、ここで2つのソフトウェアリンクが確立されました。

sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/libssl.so

次に、luaosslをインストールします

luarocks install luaossl

ただし、itorchライブラリをインストールする場合、luacryptoライブラリはまだ欠落しており、コンパイルプロセス中に同じエラーが発生します。最後に、luarocks検索コマンドを使用してluacrypto2ライブラリファイルを見つけ、それをインストールします

luarocks install luacrypto2

再インストールしても同じ問題が発生し、luacryptoライブラリが見つかりません。そこで、ソースコードを使用してインストールすることにしました。

git clone https://github.com/facebook/iTorch.git
cd iTorch

luacrypto依存関係ライブラリの問題が再発しないようにするには
ソースコードのインストールファイルiTorch /itorch-scm-1.rockspecの依存関係を修正します
元の依存関係ファイル

に修正されました
新しい依存関係ファイル

次に、コンパイルしてインストールします

luarocks make 

正常にインストールされました。ターミナルでitorchノートブックを起動すると起動できません

Unsupported ipython version. Only major versions 2.xx, 3.xx, 4.xx or 5.xx (Jupyter) are supported

ただし、jupyter Notebookを起動した後、新しいluaファイルを作成できます。
起動プロセステストで
テストは、itorchが正常にインストールされたことが示されています。

参照

[1] Jupyter Notebookの紹介、インストール、および使用のチュートリアル

おすすめ

転載: blog.csdn.net/Zhang_Pro/article/details/106991753