Python 가상 환경을 실행하는 Bash 스크립트가 실행되지 않습니다.

Python 가상 환경을 실행하는 Bash 스크립트가 실행되지 않습니다.

Python 가상 환경을 실행하는 스크립트에 다음 호출을 래핑하려고 합니다.

[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ source /home/lucas/Dropbox/projects/competitive-programming/kaggle/venv/ipython-notebook/bin/activate                                
(ipython-notebook) [lucas@lucas-ThinkPad-W520]/home/lucas/bin$ deactivate
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ 

그래서 다음 bash 스크립트를 만들고 실행했습니다.

[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ cat venv_python3.sh 
#!/bin/bash
#  /usr/bin/env bash
echo "starting python3 venv"
source /home/lucas/Dropbox/projects/competitiveprogramming/kaggle/venv/ipythonnotebook/bin/activate
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ venv_python3.sh 
starting python3 venv                                                                            
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ 

보시다시피 호출을 실행 echo하지만 가상 환경을 시작하지는 않습니다. 내가 뭐 놓친 거 없니?

여러 튜토리얼을 살펴봤지만 누락된 내용을 찾을 수 없습니다. 또한 /home/lucas/bin/내 스크립트의 위치인 my 는 my 에 있습니다 $PATH.

파일의 권한은 다음과 같습니다.

[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ ls -la
total 52
drwxr-xr-x  3 lucas lucas 4096 Jun 28 23:14 .
drwxr-xr-x 79 lucas lucas 4096 Jun 28 23:13 ..
-rwxrw-r--  1 lucas lucas  164 Jun 28 23:13 venv_python3.sh

답변1

스크립트 상단에는 activate이를 가져와야 하며 직접 실행할 수 없다고 나와 있습니다. 그것이 하는 일은 bash파일 소스 세션에서 무언가를 변경하는 것입니다.

귀하의 경우 이는 스크립트를 실행하여 호출 bash됩니다 .bashvenv_python3.sh아니요대화형으로 입력 bash하고 있습니다.

당신이 할 수 있는 일은 당신을 위해 구매를 수행하는 bash 기능(또는 별칭)을 만드는 것입니다. 그러면 "구매"가 당신 측에서 대화식으로 이루어집니다 bash.

하지만 한번 보시길 권합니다가상 환경 래퍼, 여러 virtualenv 작업을 훨씬 쉽게 만들고 처음에 이 스크립트를 만들 때 발생한 "문제"를 해결할 수 있습니다.

관련 정보