如果定义了在bash脚本中使用哪个版本的python,那么它将是
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 :(得分:6)
我们必须在这里区分两种情况:
如何进入" bash脚本中的Python virtualenv?
就像在交互式bash命令行上一样:
source /path/to/the/virtual_env/bin/python
这里的标准方法是什么?
标准方法不 在bash脚本中输入 virtualenv。相反,调用python和/或您希望按其完整路径使用的基于python的命令。为了使这更容易,重复性更低,您可以使用别名和变量。
已经有这样的剧本了。它被称为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
答案 1 :(得分:0)
以下几个步骤,您可以做的一件事是
export PYTHON = "/path/pathto/virtualenv/python"
在bashrc中使用此路径来使用。或者您可以执行以下操作: -
vim ~/.bashrc
转到结束并设置
alias python=/path/pathto/virtualenv/python
source ~/.bashrc
答案 2 :(得分:0)
我建议使用virtualenvwrapper。它提供了一些用于管理虚拟环境的有用工具。
pip install --user 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