2017-04-07 9 views
0

condaにいくつかのパッケージに関する設計上の問題があります。私は私がどこを取得するには、以下の手順を行っている:condaでカスタムh5pyビルドを作成する論理的方法

  1. (特定のコンパイラフラグを有効にする)HDF5のビルドカスタムバージョン
  2. h5pyのビルドカスタムバージョンを(変更はHDF5のカスタムバージョンが異なるAPIを呼び出すと。これは、HDF5の私のカスタムバージョンを使用して適切に構築することができ

だから私の質問は次のとおりです。

私は私が私たちのシステム全体の開発と生産の機械で使用するために構築されてきたこの新しいパッケージをパッケージ化すると、私はやめたそれを行う最善の方法を知ることはできません。私はベストプラクティスを知らないので、python | condaパッケージを作成したことがありません。

オンラインの主題に関するほとんどのドキュメントは、あなたにコンドミニアムがパッケージをビルドさせることを扱っているようです。たとえば、ビルドディレクトリにh5py(h5pyで修正されたソースから)をビルドし、そこにメタとビルドファイルを追加して、それを私のパッケージにすることができますか?あるいは、anaconda/lib/python3.5/site-packages/h5py-2 * .eggのインストールディレクトリを新しいパッケージのソースとして使用しますか?

パッケージが作成されたら(私が想定しているconda buildコマンドを使用して)、通常はプライベートサーバーに保管されているのですか、またはcondaクラウドにアップロードできますか?

私はこれが非常に未解決の質問であることを知っています。だから、すべての助けに感謝します。

答えて

1

私はあなたがcondaの最新バージョンを使用していることを確認し、独自のHDF5パッケージ

を作成する手順をご案内します:

(root) [[email protected] hdf5]# conda install -y conda-build 
conda-構築

(root) [[email protected] hdf5]# conda update conda 

は、パッケージをインストールします

デフォルトチャンネルにあるパッケージのレシピの公式リポジトリをダウンロード

(root) [[email protected] tmp]# wget -qO- https://github.com/ContinuumIO/anaconda-recipes/archive/4.3.0.tar.gz | tar -xvz 
(root) [[email protected] tmp]# cd anaconda-recipes-4.3.0/hdf5/ 
(root) [[email protected] hdf5]# ls 
bld.bat build.sh meta.yaml 

編集コンパイラフラグはいくつかのより多くの依存関係が必要な場合は、その後、meta.ymlファイルに要件セクションのビルドサブセクションでそれらを追加

(root) [[email protected] hdf5]# vi build.sh 

をカスタムコンパイラフラグを追加するために、ファイルbuild.sh 。また、URLをhttps://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.17/src/hdf5-1.8.17.tar.gzに更新してください。これは古いリリースであるため、URLが変更されています。

(root) [[email protected] hdf5]# vi meta.yaml 

パッケージの作成を開始する時間。

# If you want to upload package(s) to anaconda.org later, type: 

anaconda upload /conda/conda-bld/linux-64/hdf5-1.8.17-1.tar.bz2 

# To have conda build upload to anaconda.org automatically, use 
# $ conda config --set anaconda_upload yes 

anaconda_upload is not set. Not uploading wheels: [] 



#################################################################################### 
Source and build intermediates have been left in /conda/conda-bld. 
There are currently 2 accumulated. 
To remove them, you can run the ```conda build purge``` command 

anaconda-をインストールします。すべてがスムーズになった場合、パッケージが構築され、あなたがのような出力が表示されます

(root) [[email protected] hdf5]# conda build . 

(あなたは、システムのパッケージマネージャを使用してgccのをインストールする必要があります)クライアントパッケージ

(root) [[email protected] hdf5]# conda install -y anaconda-client 

https://anaconda.org/にアクセスしてアカウントを作成してください。今、あなたが構築したい場合は、今すぐあなたのチャンネルから

(root) [[email protected] ~]# conda install -c nehaljwani hdf5 
Fetching package metadata ........... 
Solving package specifications: . 

Package plan for installation in environment /conda: 

The following NEW packages will be INSTALLED: 

    hdf5: 1.8.17-1  nehaljwani 

をパッケージをダウンロードしてインストールするためにあなたのチャンネルを使用することができ、次回の

(root) [[email protected] hdf5]# anaconda upload /conda/conda-bld/linux-64/hdf5-1.8.17-1.tar.bz2 
Using Anaconda API: https://api.anaconda.org 
The action you are performing requires authentication, please sign in: 
Using Anaconda API: https://api.anaconda.org 
Username: nehaljwani 
nehaljwani's Password: 
login successful 
Using Anaconda API: https://api.anaconda.org 
detecting package type ... 
conda 
extracting package attributes for upload ... 
done 

Uploading file nehaljwani/hdf5/1.8.17/linux-64/hdf5-1.8.17-1.tar.bz2 ... 
uploaded 2003 of 2003Kb: 100.00% ETA: 0.0 minutes 


Upload(s) Complete 

Package located at: 
https://anaconda.org/nehaljwani/hdf5 

:その後、あなたは自分のチャンネルに作成したパッケージをアップロードh5pyでは、手順はほぼ同じですが、このパッケージを作成している間はhdf5パッケージがチャンネルから取得されていることを確認する必要があります。これを行うには、チャンネルの優先順位が最も高いことを確認してください。

(root) [[email protected] ~]# conda config --prepend channels nehaljwani 

あなたも微妙な修正を加える必要があるので、今、あなたがパッチを作成し、ファイルにパッチを作成し、meta.ymlファイルにパッチサブセクションでそれを追加することにより、ビルドプロセス中にそれを適用することができます、ちょうどここ1のように:パッケージをビルドする方法についての詳細情報についてはhttps://github.com/ContinuumIO/anaconda-recipes/blob/master/h5py/meta.yaml

、訪問:

+0

https://conda.io/docs/build_tutorials/pkgs2.html#がこれを書くために時間を割いていただきありがとうございます。私はすべての仕事を得ることができました。 – user2886057

関連する問題