2016-11-30 43 views
0

如果一个定义蟒蛇在bash脚本中使用的版本,这将是如何在执行bashscript时输入Python virtualenv?

export PYTHON = "/path/python/python-3.5.1/bin/python" 

但对于Python中的virtualenv的,一个在命令行中执行这些命令

cd /path/pathto/virtualenv 
source activate 
cd another_directory 

怎样一个“在bash脚本中输入“一个Python virtualenv?这里的标准方法是什么?

+0

使用Python脚本进入蟒蛇的virtualenv

内容。用#开始文件!/usr/bin/env python' –

+0

@IporSircer如何使用python脚本输入virtualenv? – ShanZhengYang

回答

2

我们必须在这里区分两种情况:

  1. 你想在你的bash脚本使用/调用Python(或基于Python的工具),但Python或这些工具应采取和运行在virtualenv中
  2. 你想一个脚本,除其他事项外,让您从中调用它进入virtualenv中,这样就可以交互调用Python(或基于Python的工具)的virtualenv中
壳里面

案例1:在脚本中使用virtualenv

如何在bash脚本中输入Python virtualenv?

就像交互式bash命令行:

source /path/to/the/virtual_env/bin/python 

什么是这里的标准方法?

的标准方法是进入在bash脚本的virtualenv。相反,请调用python和/或基于python的命令来使用其完整路径。为了使这更容易,更少重复,可以使用别名和变量。

案例2:通过调用脚本

已经有这样一个脚本激活在交互式的bash会话的virtualenv。它被称为activate,它位于virtualenv的bin目录中。你必须要source而不是像普通的命令那样调用它。只有这样它才能在同一个会话中运行,而不是在子shell中运行,因此只有这样它才能对会话进行修改,而不会因为子脚本在脚本结尾处终止而丢失。

所以只是做:

source /path/to/the/virtual_env/bin/python 

在交互式shell会话。

但是如果你想要做的比activate脚本更多呢?你可以把

source /path/to/the/virtual_env/bin/python 

放到一个shell脚本中。 但是,由于上面提到的原因,当您正常调用脚本时,它不会有太大的影响。相反,source您的脚本可以在交互式会话中使用它。

这样:的my_activate.sh

#!/bin/bash 

# Do something 
# ... 

# then 
source /path/to/the/virtual_env/bin/python 

# Do more stuff 
# ... 

和交互式会话

source my_activate.sh 
0

这里有一些要遵循的步骤,有一两件事你可以做的是

export PYTHON = "/path/pathto/virtualenv/python" 

使用中的.bashrc这个路径使用。或者,你可以这样做: -

vim ~/.bashrc 

转到结束,并设置

alias python=/path/pathto/virtualenv/python 
source ~/.bashrc 
+0

“在bashrc中使用此路径来使用”。我没有跟随。我如何“激活”virtualenv? – ShanZhengYang

+0

没有必要像使用“/ home/rakeshkumar/trading/venv/bin/python”一样使用这个路径“/ path/pathto/virtualenv/python”来激活virtualenv。我遵循别名方法,并为我工作得很好。 –

+0

正如我正常的python有2.7,使用别名后virtualenv,python命令使用3.5 –

0

我建议使用virtualenvwrapper。它提供了一些用于管理虚拟环境的有用工具。

​​

当您创建虚拟环境时,您可以指定应该在环境中使用哪种版本的python。

mkvirtualenv -p /usr/local/bin/python2.6 myproject.2.6 
mkvirtualenv -p /usr/local/bin/python3.3 myproject.3.3 

然后,用workon命令“进入”环境。

workon myproject.2.6 
相关问题