Skip to content

Commit

Permalink
Ensure virtualenv activates.
Browse files Browse the repository at this point in the history
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
zwn committed Apr 21, 2016
1 parent f960802 commit 7002fbe
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions python/mach_bootstrap.py
Expand Up @@ -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"),
Expand Down Expand Up @@ -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))

python = find_executable("python")
if python is None or not python.startswith(virtualenv_path):
sys.exit("Python virtualenv failed to activate.")

# TODO: Right now, we iteratively install all the requirements by invoking
# `pip install` each time. If it were the case that there were conflicting
Expand Down

0 comments on commit 7002fbe

Please sign in to comment.