2017-04-07 1 views
0

conda에서 일부 패키지의 설계 문제가 있습니다. HDF5의 사용자 정의 버전과 다른 API를 호출 수정을conda를 사용하여 사용자 정의 h5py 빌드를 작성하는 논리적 방법

  1. 빌드 정의 HDF5 버전 (수 있도록 특정 컴파일러 플래그) h5py의
  2. 빌드 정의 버전 (: 나는 내가 어디에서 얻을 수있는 다음 단계를 수행했다. 이은 HDF5의 내 사용자 지정 버전을 사용하여 제대로 구축 할 수

그래서 제 질문은 다음과 같습니다.

가 나는 우리의 시스템을 통해 개발 및 생산 기계에 사용하기 위해 구축 한이 새로운 패키지를 포장 할 나는 위안이된다. 그것을하는 최선의 방법을 아는 것. 나는 모범 사례를 모르기 전에 python | conda 패키지를 만들지 않았습니다.

온라인 주제에 관한 대부분의 문서는 콘도가 당신을 위해 패키지를 만드는 것을 처리하는 것으로 보입니다. 예를 들어, 빌드 디렉토리에서 h5py (h5py로 수정 된 소스에서) h5py를 빌드 한 다음 메타 파일을 추가하고 그 파일을 패키지로 빌드 할 수 있습니까? 또는 anaconda/lib/python3.5/site-packages/h5py-2 * .egg의 설치 디렉토리를 새 패키지의 소스로 사용합니다.

일단 패키지가 만들어지면 (일반적으로 conda build 명령을 사용하여) 패키지가 개인 서버에 보관되거나 conda cloud에 업로드 할 수 있습니다.

나는 이것이 매우 열린 질문이므로 모든 도움을 주시면 감사하겠습니다.

답변

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 

파일을 편집 build.sh는 컴파일러 플래그 좀 더 종속성을해야하는 경우

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

, 다음 meta.yml 파일의 요구 사항 섹션의 빌드 하위 섹션에서 추가 사용자 정의 컴파일러 플래그 추가 . 또한 URL을 https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.17/src/hdf5-1.8.17.tar.gz으로 업데이트하십시오. 이전 릴리스이므로 URL이 변경되었습니다.

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

패키지 빌드를 시작하는 데 걸리는 시간.모두가 매끄러운 상태가되면 패키지가 건설 될 예정

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

을 (당신은 시스템의 패키지 관리자를 사용하여 GCC를 설치해야 할 수 있습니다) 당신은 출력과 비슷한에 표시됩니다

# 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 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 파일에 서브 섹션을 수 단지 같은 여기 : 패키지를 빌드하는 방법에 대한 추가 정보를 원하시면 https://github.com/ContinuumIO/anaconda-recipes/blob/master/h5py/meta.yaml

, 방문 :

+0

https://conda.io/docs/build_tutorials/pkgs2.html#이를 작성하는 시간을내어 주셔서 감사합니다. 나는 모든 것을 작동시킬 수 있었다. – user2886057

관련 문제