2016-11-30 145 views
1

我一直在編寫一個shell腳本,以便在CentOS 7 Docker容器中運行,以創建一個AppImage。在此腳本中,我希望從shell腳本啓動的Python虛擬環境(由運行source AppDir/usr/bin/activate開始)中運行Shell命令pip install -U spyder。問題是我不知道該怎麼做,因爲source AppDir/usr/bin/activate行之後的腳本中的行被忽略(因爲在腳本中此時shell已經進入了Python虛擬環境)。那麼是否有一些選項需要通過source AppDir/usr/bin/activate命令,以便在此Python虛擬環境中運行pip install -U spyder命令?如何從shell腳本進入Python虛擬環境並在其中運行shell命令?

回答

4

您可以在不激活虛擬環境的情況下安裝您的需求,但可以爲您的虛擬環境提供完整路徑pip

​​

因爲什麼activate正在做它把你的virtualenv bin/文件夾中的PATH之前,讓pippython命令將是全球性的問題之前你viartualenv的引用。從activate來源:

VIRTUAL_ENV="<path_to_env>" 
export VIRTUAL_ENV 

_OLD_VIRTUAL_PATH="$PATH" 
PATH="$VIRTUAL_ENV/bin:$PATH" 
export PATH 
+0

它是在虛擬環境中,因爲我想安裝到'/ APPDIR/usr'(我的virtualenv目錄)已安裝的文件。 – BH2017

+1

@BrentonHorne它將安裝在你的virtualenv。 –

+0

酷!這需要關注點安裝。但是如果我需要通過shell腳本在virtualenv中運行「python install setup.py」,我該怎麼辦? –

相關問題