Anaconda Python 배포판을 설치하고 사용하고 있으며 Anaconda (Conda) 환경을 사용하기 시작했습니다. 표준 conda install...
명령을 사용하여 패키지를 배포 환경에 넣을 수 있지만 외부 환경 (예 : Flask-WTF, flask-sqlalchemy 및 alembic)을 사용 pip install
하여 활성 환경에서 사용해야 합니다. 그러나 환경의 내용을 볼 때 디렉토리 또는 conda list
이 pip install
ed 패키지를 사용 하면 표시되지 않습니다.
내가 설치 한 모든 패키지를 사용 pip freeze
하고 pip list
나열합니다.
내 Anaconda env
의 각 항목 ( pip
및 conda
설치)을 추적 할 수있는 방법이 있습니까?
답변
conda-env는 이제 이것을 자동으로 수행합니다 (pip가 conda와 함께 설치된 경우).
환경 마이그레이션에 사용되는 내보내기 도구를 사용하여이 작동 방식을 확인할 수 있습니다.
conda env export -n <env-name> > environment.yml
이 파일에는 conda 패키지와 pip 패키지가 모두 나열됩니다.
name: stats
channels:
- javascript
dependencies:
- python=3.4
- bokeh=0.9.2
- numpy=1.9.*
- nodejs=0.10.*
- flask
- pip:
- Flask-Testing
환경 내보내기를 수행하려면 environment.yml
새 호스트 시스템으로 이동 하여 다음을 실행하십시오.
conda env create -f path/to/environment.yml
답변
conda
설치된 패키지 만 추적합니다. 그리고 설치 프로그램 자체를 pip
사용하여 pip
설치했거나 계란 정보를 생성 한 conda 빌드에 사용 setuptools
된 패키지를 제공합니다 setup.py
. 기본적으로 세 가지 옵션이 있습니다.
-
패키지 관리자와 함께 ( 로 표시된 ) 패키지를 사용하여 설치된 패키지
conda list
와pip freeze
와 패키지로 함께 설치된conda
( 및 표시 되지 않은 ) 패키지를 통합 할 수 있습니다 .conda list
conda
pip
pip freeze
conda list
pip
-
환경 단지를 설치하십시오
python
,pip
그리고distribute
패키지에 모든 것을 관리pip
. (당신이 Windows에 있다면 이것은 사소한 것이 아닙니다 …) -
자신 만의
conda
패키지를 만들고으로 모든 것을 관리하십시오conda
.
conda
패키지 를 만드는 것이 매우 쉽기 때문에 개인적으로 세 번째 옵션을 추천 합니다. 연속체의 github 계정에는 예제 레시피의 git 저장소가 있습니다. 그러나 일반적으로 다음과 같이 요약됩니다.
conda skeleton pypi PACKAGE
conda build PACKAGE
또는 그냥 :
conda pipbuild PACKAGE
또한 한 번 빌드하면 https://binstar.org/에 업로드 할 수 있습니다. 거기에서 설치하면됩니다.
그러면 모든 것을 사용하여 관리하게됩니다 conda
.
답변
pip 및 PyPI와의 통합을 향상시키는 conda 분기 (new-pypi-install)가 있습니다. 특히 conda 목록에는 pip installed 패키지가 표시되고 conda 설치는 먼저 conda 패키지를 찾고 pip를 사용하여 패키지를 설치하지 못합니다.
이 지점은 이번 주 후반에 통합되어 conda 2.1 버전이 conda와 pip 통합을 개선 할 것입니다.
답변
나는 @Viktor Kerkez의 답변을 따랐으며 혼합 된 성공을 거두었습니다. 때로는이 요리법이
콘다 스켈레톤 파이피 패키지
콘다 빌드 패키지
모든 것이 작동하는 것처럼 보이지만 패키지를 성공적으로 가져올 수 없습니다. 최근 나는 Anaconda 사용자 그룹 에 대해 이것에 대해 물었고 @Travis Oliphant 자신이 conda를 사용하여 Anaconda와 함께 제공되지 않는 패키지를 빌드하고 관리하는 가장 좋은 방법에 대해 들었습니다. 이 스레드를 읽을 수 있습니다 여기에 영업의 질문에 대한 답변이 더 완벽하게, 그러나 나는 희망을 아래의 방법을 설명 할 것이다 …
예 : 우수한 prettyplotlib 패키지 를 설치하려고 합니다 conda 2.2.5를 사용하여 Windows에 .
1a) conda build --build-recipe prettyplotlib
빌드 메시지는 빌드의 마지막 테스트 섹션까지 잘 보입니다. 이 오류를 보았다
“C : \ Anaconda \ conda-bld \ test-tmp_dir \ run_test.py”파일, 23 행 가져 오기 없음 구문 오류 : 할당 할 수 없습니다. 테스트 실패 : prettyplotlib-0.1.3-py27_0
1b) / conda-recipes / prettyplotlib로 이동하여 meta.yaml 파일을 편집하십시오. 현재 1a 단계와 같이 패키지를 설정하면 test
섹션에 오류가있는 yaml 파일이 생성됩니다 . 예를 들어, 다음은 광산을 찾는 방법입니다.prettyplotlib
test: # Python imports imports:
-
- prettyplotlib
- prettyplotlib
이 섹션을 편집하여-앞에있는 빈 줄을 제거하고 중복 prettyplotlib 줄도 제거하십시오. 이 글을 쓰는 시점에서 나는 conda로 설치하는 외부 패키지에 대해 이와 같은 대부분의 meta.yaml 파일을 편집해야한다는 것을 알았습니다. 즉, 주어진 패키지의 중복 가져 오기와 함께 오류를 일으키는 빈 가져 오기 줄이 있음을 의미합니다 .
1c) 1a에서 명령을 다시 실행하십시오. 이번에는 오류없이 완료되어야합니다. 빌드가 끝나면 binstar에 빌드를 업로드할지 묻는 메시지가 표시 됩니다. 아니요를 입력 한 후 다음 메시지를 보았습니다.
이 패키지를 나중에 binstar.org에 업로드하려면 다음을 입력하십시오.
binstar 업로드 C : \ Anaconda \ conda-bld \ win-64 \ prettyplotlib-0.1.3-py27_0.tar.bz2
tar.bz2 파일은 실제로 설치해야하는 빌드입니다.
2) conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
이 단계에 따라 conda를 사용하여 Anaconda와 함께 제공되지 않는 많은 패키지를 설치했습니다. 이전에는 pip를 사용하여 이들 중 일부를 설치 했으므로pip uninstall PACKAGE
를 설치 했으므로 conda를 사용하여 PACKAGE를 설치하기 전에 수행했습니다. conda를 사용하여 conda, pip, easy_install 및 python setup.py 설치와 함께 설치되는 것보다 단일 접근 방식으로 거의 모든 패키지를 관리 할 수 있습니다.
맥락에서, @Travis Oliphant의 최근 블로그 게시물 은 강력한 Python 패키징에 들어가는 모든 것을 좋아하지는 않지만 물건이 “작동하는”경우에는 분명히 감사하는 나와 같은 사람들에게 도움이 될 것이라고 생각합니다 . 콘다는 앞으로 좋은 길처럼 보입니다 …
답변
이것이 내가 Picky를 쓴 이유입니다. http://picky.readthedocs.io/
virtualenvs 및 conda envs에서 pip 또는 conda로 설치된 패키지를 추적하는 python 패키지입니다.
답변
여기서 누락 된 것은 당신이 할 때입니다.
>pip install .
setup.py를 사용하여 로컬 패키지를 설치하려면 동일한 버전 의 Python 을 사용하는 모든 conda 환경에 표시되는 패키지를 설치합니다 . 참고 나는 pip의 conda 버전을 사용하고 있습니다!
예를 들어, python2.7을 사용하는 경우 로컬 패키지를 여기에 넣습니다.
/usr/local/anaconda/lib/python2.7/site-packages
그런 다음 나중에 python = 2.7 (= 기본값)로 새 conda env를 만듭니다.
>conda create --name new
>source activate new
그리고 나서 :
(new)>conda list // empty - conda is not aware of any packages yet
그러나 내가 할 경우 :
(new)>pip list // the local package installed above is present
따라서이 경우 conda는 pip 패키지에 대해 알지 못하지만 파이썬에서 패키지를 사용할 수 있습니다.
내가 대신 (다시 주사위를 사용하여) 로컬 패키지를 설치하는 경우 그러나, 이후에 내가 만든 (활성화) 한 새로운 CONDA의 ENV를, 지금 CONDA 그것을 본다 :
(new)>conda list // sees that the package is there and was installed by pip
따라서 conda와 pip 간의 상호 작용에는 몇 가지 문제가 있습니다. 즉, 하나의 conda에서 로컬 패키지를 설치하기 위해 pip를 사용하면 env는 패키지를 콘돔 목록을 통해 볼 수는 없지만 동일한 파이썬 버전의 다른 모든 conda 환경에서 사용할 수 있습니다.
답변
conda env export
환경의 모든 conda 및 pip 패키지를 나열합니다. conda-env
conda 루트에 설치해야합니다 (conda install -c conda conda-env
)에 .
environment.yml
현재 환경을 설명 하는 파일 을 작성하려면 다음을 수행하십시오.
conda env export > environment.yml
참고 문헌 :