콘다에서 요구 사항을 생성합니다.pip3의 경우 txt
저는 주로 콘다를 사용하여 환경을 관리하지만, 지금은 노트북보다 조금 더 많은 마력이 필요한 프로젝트를 진행하고 있습니다.그래서 저는 새로운 Intel Xeons가 있는 대학교의 워크스테이션을 사용하려고 합니다.하지만 관리자 권한이 없고 워크스테이션에 콘다가 없기 때문에 virtualenv와 pip3를 사용해야 합니다.
어떻게 생성합니까?requirements.txt
와 함께 작동할 콘도에서.pip3
그리고.venv
?
conda list -e > requirements.txt
호환되는 파일을 생성하지 않습니다.
= is not a valid operator. Did you mean == ?
그conda
출력:
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
certifi=2016.2.28=py36_0
cycler=0.10.0=py36_0
freetype=2.5.5=2
icu=54.1=0
libpng=1.6.30=1
matplotlib=2.0.2=np113py36_0
mkl=2017.0.3=0
numpy=1.13.1=py36_0
openssl=1.0.2l=0
pip=9.0.1=py36_1
pyparsing=2.2.0=py36_0
pyqt=5.6.0=py36_2
python=3.6.2=0
python-dateutil=2.6.1=py36_0
pytz=2017.2=py36_0
qt=5.6.2=2
readline=6.2=2
scikit-learn=0.19.0=np113py36_0
scipy=0.19.1=np113py36_0
setuptools=36.4.0=py36_1
sip=4.18=py36_0
six=1.10.0=py36_0
sqlite=3.13.0=0
tk=8.5.18=0
wheel=0.29.0=py36_0
xz=5.2.3=0
zlib=1.2.11=0
저는 그냥 수동으로 모든 것을 바꿀 것이라고 생각했습니다.=
로.==
하지만 두 개가 있습니다.=
콘다 출력에서.어떤 것을 바꿀까요?확실히 더 쉬운 방법이 있습니까?
편집:pip freeze > requirements.txt
제공:
certifi==2016.2.28
cycler==0.10.0
matplotlib==2.0.2
matplotlib-venn==0.11.5
numpy==1.13.1
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
scikit-learn==0.19.0
scipy==0.19.1
six==1.10.0
상단의 설명에서 알 수 있듯이, 출력은
conda list -e > requirements.txt
를 생성하는 데 사용할 수 있습니다.conda
가상 환경(사용 가능)
conda create --name <env> --file requirements.txt
하지만 이 출력은 올바른 형식이 아닙니다.pip
.
파일을 생성하는 데 사용할 수 있는 경우pip
가상 환경(즉, a)requirements.txt
올바른 형식)을 설치할 수 있습니다.pip
의 내부에conda
환경, 그런 다음 pip을 사용하여 생성requirements.txt
.
conda activate <env>
conda install pip
pip freeze > requirements.txt
그런 다음 결과를 사용합니다.requirements.txt
를 생성하기 위해pip
가상 환경:
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
제가 이것을 테스트했을 때, 패키지는 출력에서 동일하지 않았습니다.pip
패키지 수가 적음)이지만 기능적 환경을 설정하기에는 충분했습니다.
요구 사항에서 홀수 경로 참조를 얻는 사람들을 위한 것입니다.txt, 사용:
pip list --format=freeze > requirements.txt
문제
단순한 통화가 가능한 콘다 환경에서
pip freeze
출력:
ipykernel @ file:///C:/ci/ipykernel_1607454116140/work/dist/ipykernel-5.3.4-py3-none-any.whl
ipython @ file:///D:/bld/ipython_1612487184680/work
...
원하는 형식:
ipykernel==5.3.4
ipython==7.20.0
...
해결책
활성화된 콘다 환경에서 사용해야 했습니다.
pip list --format=freeze
가상 환경에서 pip를 사용하는 것을 선호하는 사용자를 위한 요구 사항 파일을 생성하기 위한 올바른 형식을 얻습니다.
파일에 저장:
pip list --format=freeze > requirements.txt
토론 후에, 저는 당신이 실제로 어떤 분리를 볼 수 있다는 것을 언급하고 싶습니다.pip
그리고.conda
역할.
pip
표준 패키지 관리자입니다. 한 가지 일을 잘 수행합니다. requirements.txt
하나의 환경에서 생성하여 설치할 수 있습니다.pip
새로운 환경에서
이제 있습니다.conda
출력: '우리는 콘다로 작업하기 위해 이 라이브러리 목록을 생성했습니다'라는 그들의 의견을 올바르게 캡처합니다.python 자체는 콘다리스트에 있고 (적절하게) 없습니다.requirements.txt
.conda
자체 설치를 복제하므로 라이브러리 목록이 더 길고 파이썬 자체가 있습니다.
pip
사용자가 작성한 패키지가 작동하도록 표준 라이브러리 위에 설치된 패키지 목록을 생성합니다.그것이 그 둘을 구별하는 데 도움이 되기를 바랍니다.
또한 pipenv는 가상 환경과 패키지 관리를 모두 수행할 수 있는 최신 툴입니다.
누군가가 요구사항을 생성하려고 할 경우에 대비합니다.conda의 기존 프로젝트에서 txt, 다음을 사용합니다.
환경으로 »
conda activate <env_name>
conda list
환경에 사용되는 패키지 목록을 제공합니다.conda list -e > requirements.txt
패키지에 대한 모든 정보를 폴더에 저장합니다.conda env export > <env_name>.yml
pip freeze
위의 의견에서 언급한 바와 같이 올바른 전체 답변은 다음과 같습니다.
pip list --format=freeze > requirements.txt
합니다.
conda activate flask-test
합니다.
conda list
에 사된경에추를 합니다.lib\site-packages
그리고 옵션과 함께 그것을 파이프에서 사용합니다.
pip freeze --path C:\Users\username\Miniconda3\envs\flask-test\lib\site-packages > requirements.txt
리눅스에서 경로는 다음과 같습니다./home/username/miniconda3/envs/flask-app/lib/python3.8/site-packages/
저는 콘다 요구 사항을 변환하기 위해 간단한 파이썬 스크립트를 만들었습니다.pip3의 경우 txt.아래 코드를 복사하면 됩니다.
f = open(r"requirements.txt", "r").read()
f1 = f.split("\n")
for line in f1:
if "=" in line:
a = line.split("=")[0:-1]
print(a[0]+"==" + a[1])
인쇄된 출력물을 복사하기만 하면 됩니다.
샘플 출력:
_libgcc_mutex==0.1
_openmp_mutex==4.5
blas==1.0
brotli==1.0.9
bzip2==1.0.8
언급URL : https://stackoverflow.com/questions/50777849/from-conda-create-requirements-txt-for-pip3
'programing' 카테고리의 다른 글
"MapHttpRoute"와 "MapRoute"의 차이점은 무엇입니까? (0) | 2023.06.10 |
---|---|
업로드 시 업로드 수 제한 (0) | 2023.06.10 |
구성 요소의 개방 소켓 연결 (0) | 2023.06.10 |
NULL 매크로가 0이 아닌 때는 언제입니까? (0) | 2023.06.10 |
MS Excel을 사용하여 MM:SS.ms 을 초 단위로 변환 (0) | 2023.06.10 |