Before today we link all the symbolic link files under ${DOTFILES}/bin to its target through absolute path, if we start python3 by our symbolic link, then we will get a sys.prefix something like "/usr/local/bin/../Cellar/python3/3.6.2/bin/../Frameworks/Python.framework/Versions/3.6", this behavior will cause our virtualenv bootstrap script failed and print out below error message:
Before today we link all the symbolic link files under ${DOTFILES}/bin to its target through absolute path,
if we start python3 by our symbolic link, then we will get a sys.prefix something like
"/usr/local/bin/../Cellar/python3/3.6.2/bin/../Frameworks/Python.framework/Versions/3.6", this behavior will
cause our virtualenv bootstrap script failed and print out below error message:

ERROR: The executable /Users/zhangqia/a/bin/python3.6 is not functioning
ERROR: It thinks sys.prefix is '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6' (should be '/Users/zhangqia/a')
ERROR: virtualenv is not compatible with this system or executable

So we change our link method, now we link all the symbolic link files under ${DOTFILES}/bin to its target
through relative path, maybe this is a bug in python3, because I don't find python2 have the same problem.

Johnson9009/dotfiles,Johnson9009/dotfiles