在你把它标为复制品之前,我已经试过了
posted here
他们不是为我工作。我试着制作一个别名,并试着创建一个函数,如下所示:
activate () {
echo Activating Virtual Environment...
source alexa/bin/activate
}
activate
但是我的脚本只是在没有激活虚拟环境的情况下运行。脚本正在与我的虚拟环境目录相同的目录中运行,
alexa
.
为清楚起见,我尝试的另一种解决方案是制作一个别名:
alias activate="source alexa/bin/activate"
activate
那不起作用,给了我一个错误
./alexaEnvSetup.sh: line 43: activate: command not found
.
有什么想法吗?
编辑
:我认为值得一提的是
echo
当我这样做的时候,命令会打印出来。所以函数被输入。虚拟环境没有被激活。
编辑
:添加完整代码:
#!/bin/bash
if [[ "$OSTYPE" == "linux-gnu" ]]; then
echo Operating system: Linux
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo Operating system: Mac OSX
echo
# Install Python 3.6.5 using `curl`
curl -O https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar xf Python-3.6.5.tgz
cd Python-3.6.5
./configure
make
make install
echo
echo Python Version 3.6.5 Installed
echo
# Install Pip
curl -O http://bootstrap.pypa.io/get-pip.py
/usr/local/bin/python3.6 get-pip.py
echo
echo Pip Installed
echo
# Install virtualenv
pip install virtualenv
echo
echo Virtual Environment Installed
virtualenv -p python3 alexa
echo Created Virtual Environment, \"alexa\"
activate () {
echo Activating Virtual Environment...
source /Users/XXXX/Auto-Lab/Commerce/alexa/bin/activate
}
export -f activate
activate
echo Virtual Environment, \"alexa\", Created and Activated
echo
# All packages (time, urllib, and json) should come default with Python3
elif [[ "$OSTYPE" == "cygwin" ]]; then
# POSIX compatibility layer and Linux environment emulation for Windows
echo Operating system: Cygwin
elif [[ "$OSTYPE" == "msys" ]]; then
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
echo Operating system: Msys
elif [[ "$OSTYPE" == "win32" ]]; then
echo Operating system: Windows32
elif [[ "$OSTYPE" == "freebsd"* ]]; then
echo Operating system: FreeBSD
else
echo Operating system unknown.
fi