2017-12-06 3 views
0

私はさまざまな環境にインストールできるツールスイートをパッケージ化しようとしています。依存関係に関する多くの問題が発生しています。エアギャップのある環境に設置されています。Condaパッケージを作成してVirtual Envsにインストールする

パッケージはAnaconda経由でインストールされ、インストールスクリプトが提供されています。

conda metapackage toolkit_bundle 0.0.1 --dependencies r-essentials tensorflow gensim spacy r-ggplot2 r-plotly r-dplyr r-rjson r-tm r-reshape2 r-shiny r-sparklyr r-slam r-nlp r-cluster r-ggvis r-plyr r-tidyr r-zoo r-magrittr r-xtable r-htmlwidgets r-formattable r-highcharter --summary "Toolkit Bundle" 

これは、私が上で開催され、コマンドが見えた

conda install toolkit_bundle.tar.bz2 

condaコマンドでインストールしようとしたtar.bzip2ファイルを作成:パッケージを作成するために、私は、次のコマンドを実行しました正常に実行するには、Pythonでモジュールをインポートするのに失敗しました。私はまた、仮想コンダ環境の作成とパッケージのインポートを試みました。

conda create -n myenv toolkit_bundle-0.0.1.tar.bz2 

エラーはありませんでしたが、いずれのモジュールもインポートできませんでした。

私はこのプロセスの一歩を欠いていますか、または私の思考プロセスに欠陥がありますか?

更新: 私の思考にはかなり欠陥があるようです。 condaメタパッケージのコマンドのドキュメントの迅速なスキムミルクは次のことを明らかにした:

Tool for building conda metapackages. A metapackage is a package with no files, only metadata. They are typically used to collect several packages together into a single package via dependencies. 

だから私の最初の理解が間違っていた、とパッケージはメタデータのみが含まれています。エアギャップ環境にインストール可能な依存関係が解決されたパッケージを作成するための他のアイデアはありますか?

+0

ローカルフォルダに必要なパッケージをすべて保存して、 'conda create'の' --channel'オプションで指定することはできませんか?リモートリポジトリにアクセスしようとするのを止めるには '--override-channels'を使う必要があります。 – nekomatic

+0

あなたはこれについて正しいです、私はちょうどそこにパッケージを配置するコンドチャンネルを作成することができます。私は、パッケージの依存関係ツリーのダウンロードがすでに行われているソリューションを見つけることを望んでいました。 – Glenak1911

答えて

0

私は必要なパッケージをpypiのWebサイトからダウンロードできました。依存関係を特定した後、手動でダウンロードし、必要な順序でインストールするためのスクリプトを書きました。

1

私は、パッケージを作るためのコマンドconda buildを見てみたいと思います。これは、依存関係を含む適切なmeta.yamlファイルとその他のビルドパラメータを書くだけです。コンドミニアムのウェブサイトには、https://conda.io/docs/user-guide/tasks/build-packagesのような優れた文書があり、例のレポがあります。

作業中のPIPパッケージをお持ちの場合は、conda skeletonを使用してcondaパッケージレシピを自動生成することもできます。

パッケージをローカルにビルドしたら、--use-localオプションをconda installにインストールして、ローカルリポジトリからインターネットに接続する必要はありません(すべての依存関係のパッケージがローカルにある限りレポ)。

関連する問題