我刚刚下载了Winpython 3.4.4.2,我试图从闪存驱动器中轻松使用它。我也使用git-bash。我在Win 7中设置了"路径"和" pythonpath"环境变量包括
F:\WinPython-32bit-3.4.4.2
如果我查看真正的Scripts文件夹:
/real/Scripts
$ ls
Activate.ps1 _decimal.pyd _msi.pyd _sqlite3.pyd _testimportmultiple.pyd easy_install-3.4-script.py easy_install.exe pip-3.4-script.py pip.exe python3.dll pywintypes34.dll tk86t.dll
_bz2.pyd _elementtree.pyd _multiprocessing.pyd _ssl.pyd _tkinter.pyd easy_install-3.4.exe easy_install.exe.manifest pip-3.4.exe pip.exe.manifest python34.dll select.pyd unicodedata.pyd
_ctypes.pyd _hashlib.pyd _overlapped.pyd _testbuffer.pyd activate.bat easy_install-3.4.exe.manifest msvcp100.dll pip-3.4.exe.manifest pyexpat.pyd pythoncom34.dll sqlite3.dll vcomp100.dll
_ctypes_test.pyd _lzma.pyd _socket.pyd _testcapi.pyd deactivate.bat easy_install-script.py msvcr100.dll pip-script.py python.exe pythonw.exe tcl86t.dll winsound.pyd
我创造了一个名为“真实”的虚拟世界。现在,当我尝试激活virtualenv时,我得到:
/real/Scripts
$ source activate.bat
sh: @echo: command not found
sh: ./activate.bat: line 4: syntax error near unexpected token `('
sh: ./activate.bat: line 4: `if not defined PROMPT ('
/real/Scripts
$ source activate
sh: activate: No such file or directory
activate.bat文件以:
开头@echo off
set "VIRTUAL_ENV=F:\envs\virtalenvs\real"
if not defined PROMPT (
set "PROMPT=$P$G"
)
if defined _OLD_VIRTUAL_PROMPT (
set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
)
如何激活virtualenv?
答案 0 :(得分:1)
根据上面的评论,我从以下的virtualenv资源中获取了POSIX“激活”脚本:
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
unset pydoc
# reset old environment variables
if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r 2>/dev/null
fi
if [ -n "$_OLD_VIRTUAL_PS1" ] ; then
PS1="$_OLD_VIRTUAL_PS1"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
if [ ! "$1" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
VIRTUAL_ENV="$(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u 'F:\envs\virtalenvs\venv_name'; else echo '/F/envs/virtalenvs/venv_name'; fi;)"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/Scripts:$PATH"
export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "$PYTHONHOME" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
alias pydoc="python -m pydoc"
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r 2>/dev/null
fi
在VENV_NAME的脚本中搜索,而不是替换你的venv名称(你可能需要仔细检查文件路径。将脚本放到你的venv的Scripts文件夹中,名称为'activate',你应该好好去。为我工作。