New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure virtualenv activates #10618
Ensure virtualenv activates #10618
Changes from all commits
File filter...
Jump to…
Ensure virtualenv activates.
There are two changes: * remove quoting which causes virtuaenv not activate * check virtualenv actually activated If the quoting added in the fix in #8394 (4ff8d3a) kicks in, it causes virtualenv to fail to activate. For the common case it is no op: ```python >>> from pipes import quote >>> print quote('common/case') common/case ``` When the path actually needs quoting, this is what happens: ```python >>> print quote('test spaces') 'test spaces' >>> print quote('windows\\path') 'windows\\path' ``` Note the embedded quotes. Virtualenv in activate_this.py uses __file__ to build the path that should be added to PATH: ```python >>> print os.getcwd() C:\software\git >>> print os.path.abspath(quote('windows\\path')) C:\software\git\'windows\path' >>> ``` The constructed path is not valid. Adding it at the beginning of PATH has no effect. This issue affects any case when the call to `quote` kicks in.
- Loading branch information
| @@ -9,7 +9,6 @@ | ||
| import subprocess | ||
| import sys | ||
| from distutils.spawn import find_executable | ||
| from pipes import quote | ||
|
|
||
| SEARCH_PATHS = [ | ||
| os.path.join("python", "mach"), | ||
| @@ -111,7 +110,11 @@ def _activate_virtualenv(topdir): | ||
| except (subprocess.CalledProcessError, OSError): | ||
| sys.exit("Python virtualenv failed to execute properly.") | ||
|
|
||
| execfile(activate_path, dict(__file__=quote(activate_path))) | ||
| execfile(activate_path, dict(__file__=activate_path)) | ||
jdm
Member
|
||
|
|
||
| python = find_executable("python") | ||
| if python is None or not python.startswith(virtualenv_path): | ||
| sys.exit("Python virtualenv failed to activate.") | ||
zwn
Author
Contributor
|
||
|
|
||
| # TODO: Right now, we iteratively install all the requirements by invoking | ||
| # `pip install` each time. If it were the case that there were conflicting | ||
Someone should check to see if this breaks Linux/OSX paths with spaces