programing

콘다에서 요구 사항을 생성합니다.pip3의 경우 txt

kingscode 2023. 6. 10. 16:12
반응형

콘다에서 요구 사항을 생성합니다.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

반응형