Python venv를 다른 PC에 복제 할 수 없습니다.
기존 venv를 다른 PC에 복제하고 싶지만 복사 붙여 넣기가 작동하지 않습니다. venv를 복사하고 두 번째 컴퓨터에 붙여넣고 실행하면
핍 목록
설치된 종속성으로 pip 및 setup_tools 만 나열됩니다. 패키지를 복제하는 다른 방법을 시도했습니다. 두 번째 시스템에서 새 venv를 만들고 새 venv에서 같은 이름을 가진 기존 파일을 건너 뛰고 첫 번째 venv의 모든 파일을 새 venv로 복사했습니다. 이제 내가 달릴 때
핍 목록
모든 종속성이 표시되지만 jupyter 노트북을 다음과 같이 시작하려고 할 때
주피터 노트북
다음과 같은 오류가 발생합니다.
실행기의 치명적 오류 : ' "f : \ path \ to \ first_venv \ on_first_machine \ scripts \ python.exe" "C : \ path \ to \ new_venv \ on_the_second_machine \ Scripts \ jupyter.exe"노트북'을 사용하여 프로세스를 만들 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.
나는 일을 작동시키는 법을 모른다. 도와주세요!
편집하다
문제는 두 번째 컴퓨터에서 인터넷에 연결되어 있지 않다는 것입니다. 실제로 그것은 일부 보안 프로토콜이 적용된 원격 시스템이며 인터넷 연결이없는 것은 보안의 일부입니다! 내 잘못이야 :'(
답변
한 시스템에서 다른 시스템으로 venv를 복사하여 붙여 넣을 수 없습니다. 스크립트가 시스템 위치를 참조 할 수 있기 때문입니다. (이는 머신 내에서 Venv를 이동하려는 시도를 의미합니다.)
대신 새 컴퓨터에서 환경을 다시 만듭니다.
- 이전 머신
pip freeze -l > packages.txt에서 virtualenv에서 실행 하십시오. packages.txt새 기계로 이동 하십시오.- 새 머신에 새 virtualenv를 만들고 입력합니다.
- txt 파일에서 패키지를 설치합니다 :
pip install -r packages.txt.
편집 : 두 번째 컴퓨터에서 인터넷에 액세스 할 수없는 경우 다음을 사용하여 2 단계부터 계속할 수 있습니다.
pip wheel -w wheels -r packages.txt첫 번째 컴퓨터의 venv에서 실행 합니다. 그러면*.whl필요한 모든 패키지에 대한 패키지 가 다운로드되고 빌드 됩니다. 이것은 두 시스템이 OS와 아키텍처에서 유사하다고 가정합니다!- 휠 파일을 새 시스템으로 복사하십시오.
- 새 머신에 새 virtualenv를 만들고 입력합니다.
- 새로운 virtualenv :에서 wheels에서 패키지를 설치합니다
pip install *.whl.
컴퓨터간에 가상 환경을 복사해서는 안됩니다. 올바른 방법은 사용 환경에 설치된 종속성을 내보내고 pip freeze다른 컴퓨터에 새 가상 환경을 만드는 것입니다.
# One the first machine
pip freeze > requirements.txt
# Copy requirements.txt to the other machine, or store in a source repository
# Then install the requirements in the new virtual environment
pip install -r requirements.txt