Anaconda (Conda) 환경에서 pip-installed 패키지를 어떻게 추적합니까?
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와 함께 제공되지 않는 패키지를 빌드하고 관리하는 가장 좋은 방법에 대해 들었습니다. 이 스레드를 읽을 수 있습니다 여기 영업의 질문에 대한 답변이 더 완벽하게, 그러나 나는 희망을 아래의 방법을 설명 할 것이다 ...
예 : conda 2.2.5를 사용하여 Windows에 우수한 prettyplotlib 패키지 를 설치하려고합니다 .
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) Rerun the command from 1a, which should complete with out error this time. At the end of the build you'll be asked if you want to upload the build to binstar. I entered No and then saw this message:
If you want to upload this package to binstar.org later, type:
$ binstar upload C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
That tar.bz2 file is the build that you now need to actually install.
2) conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
Following these steps I have successfully used conda to install a number of packages that do not come with Anaconda. Previously, I had installed some of these using pip, so I did pip uninstall PACKAGE
prior to installing PACKAGE with conda. Using conda, I can now manage (almost) all of my packages with a single approach rather than having a mix of stuff installed with conda, pip, easy_install, and python setup.py install.
For context, I think this recent blog post by @Travis Oliphant will be helpful for people like me who do not appreciate everything that goes into robust Python packaging but certainly appreciate when stuff "just works". conda seems like a great way forward...
This is why I wrote Picky: http://picky.readthedocs.io/
It's a python package that tracks packages installed with either pip or conda in either virtualenvs and conda envs.
I think what's missing here is that when you do:
>pip install .
to install a local package with a setup.py, it installs a package that is visible to all the conda envs that use the same version of python. Note I am using the conda version of pip!
e.g., if I'm using python2.7 it puts the local package here:
/usr/local/anaconda/lib/python2.7/site-packages
If I then later create a new conda env with python=2.7 (= the default):
>conda create --name new
>source activate new
And then do:
(new)>conda list // empty - conda is not aware of any packages yet
However, if I do:
(new)>pip list // the local package installed above is present
So in this case, conda does not know about the pip package, but the package is available to python.
However, If I instead install the local package (again using pip) after I've created (and activated) the new conda env, now conda sees it:
(new)>conda list // sees that the package is there and was installed by pip
So I think the interaction between conda and pip has some issues - ie, using pip to install a local package from within one conda env makes that package available (but not seen via conda list) to all other conda envs of the same python version.
conda env export
lists all conda and pip packages in an environment. conda-env
must be installed in the conda root (conda install -c conda conda-env
).
To write an environment.yml
file describing the current environment:
conda env export > environment.yml
References:
I usually prefix the 'bin/pip' folder for the specific environment you want to install the package before the 'pip' command. For instance, if you would like to install pymc3 in the environment py34, you should use this command:
~/anaconda/envs/py34/bin/pip install git+https://github.com/pymc-devs/pymc3
You basically just need to find the right path to your environment 'bin/pip' folder and put it before the install command.
You can start by installing the below given command in the conda environment:
conda install pip
Followed by installing all pip packages you need in the environment.
After installing all the conda and pip packages to export the environment use:
conda env export -n <env-name> > environment.yml
This will create the required file in the folder
My which pip
shows the following path:
$ which pip
/home/kmario23/anaconda3/bin/pip
So, whatever package I install using pip install <package-name>
will have to be reflected in the list of packages when the list is exported using:
$ conda list --export > conda_list.txt
But, I don't. So, instead I used the following command as suggested by several others:
# get environment name by
$ conda-env list
# get list of all installed packages by (conda, pip, etc.,)
$ conda-env export -n <my-environment-name> > all_packages.yml
# if you haven't created any specific env, then just use 'root'
Now, I can see all the packages in my all-packages.yml
file.
'IT story' 카테고리의 다른 글
Angular 2 서비스에서 Observable 생성 및 반환 (0) | 2020.07.09 |
---|---|
C #에 XNOR (논리 이중 조건부) 연산자가 있습니까? (0) | 2020.07.09 |
Typescript : 라디오 버튼에 표시하기 위해 열거 형 값을 반복하는 방법은 무엇입니까? (0) | 2020.07.09 |
두 위도와 경도 지리 좌표 사이의 거리 계산 (0) | 2020.07.08 |
Ruby를 사용하여 문자열이 기본적으로 따옴표로 묶인 정수인지 테스트하는 방법 (0) | 2020.07.08 |