]> granicus.if.org Git - python/commitdiff
Addressed some buildbot errors and comments on the checkin by Antoine on python-dev.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Sat, 26 May 2012 19:36:12 +0000 (20:36 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Sat, 26 May 2012 19:36:12 +0000 (20:36 +0100)
Lib/distutils/sysconfig.py
Lib/sysconfig.py
Lib/test/test_venv.py
Lib/venv/__init__.py

index 977962f748dbc96d5c32aefda5d03c9e694a6a7f..59315f72799e5411eeaff193e732a60aaf60ff5f 100644 (file)
@@ -47,7 +47,8 @@ def _is_python_source_dir(d):
             return True
     return False
 _sys_home = getattr(sys, '_home', None)
-if _sys_home and os.name == 'nt' and _sys_home.lower().endswith('pcbuild'):
+if _sys_home and os.name == 'nt' and \
+    _sys_home.lower().endswith(('pcbuild', 'pcbuild\\amd64')):
     _sys_home = os.path.dirname(_sys_home)
 def _python_build():
     if _sys_home:
index 6ed9fd831f888a2127b08e856ff78199e345094f..7350efbfa04aaed2bbac397f1206148e9e0d2996 100644 (file)
@@ -104,7 +104,8 @@ def _is_python_source_dir(d):
     return False
 
 _sys_home = getattr(sys, '_home', None)
-if _sys_home and os.name == 'nt' and _sys_home.lower().endswith('pcbuild'):
+if _sys_home and os.name == 'nt' and \
+    _sys_home.lower().endswith(('pcbuild', 'pcbuild\\amd64')):
     _sys_home = os.path.dirname(_sys_home)
 
 def is_python_build(check_home=False):
index fae62ed292aafb432666af8ac9be746df7d737bb..8e41a47fd0559f91ed19688a5e82060f153a68b5 100644 (file)
@@ -1,24 +1,7 @@
-#!/usr/bin/env python
-#
-# Copyright 2011 by Vinay Sajip. All Rights Reserved.
-#
-# Permission to use, copy, modify, and distribute this software and its
-# documentation for any purpose and without fee is hereby granted,
-# provided that the above copyright notice appear in all copies and that
-# both that copyright notice and this permission notice appear in
-# supporting documentation, and that the name of Vinay Sajip
-# not be used in advertising or publicity pertaining to distribution
-# of the software without specific, written prior permission.
-# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
-# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
-# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-"""Test harness for the venv module. Run all tests.
-
-Copyright (C) 2011 Vinay Sajip. All Rights Reserved.
+"""
+Test harness for the venv module.
+
+Copyright (C) 2011-2012 Vinay Sajip.
 """
 
 import os
@@ -93,7 +76,7 @@ class BasicTest(BaseTest):
         data = self.get_text_file_contents(self.bindir, self.ps3name)
         self.assertTrue(data.startswith('#!%s%s' % (self.env_dir, os.sep)))
         fn = self.get_env_file(self.bindir, self.exe)
-        self.assertTrue(os.path.exists(fn))
+        self.assertTrue(os.path.exists(fn), 'File %r exists' % fn)
 
     def test_overwrite_existing(self):
         """
index 8c26fb175af0be50b2f98cafc55ff84055b94d40..0c219ab7e0a712a30b803806f5bf4d626d4672ad 100644 (file)
@@ -1,30 +1,34 @@
-# Copyright (C) 2011-2012 Vinay Sajip.
-#
-# Use with a Python executable built from the Python fork at
-#
-# https://bitbucket.org/vinay.sajip/pythonv/ as follows:
-#
-# python -m venv env_dir
-#
-# You'll need an Internet connection (needed to download distribute_setup.py).
-#
-# The script will change to the environment's binary directory and run
-#
-# ./python distribute_setup.py
-#
-# after which you can change to the environment's directory and do some
-# installations, e.g.
-#
-# source bin/activate.sh
-# pysetup3 install setuptools-git
-# pysetup3 install Pygments
-# pysetup3 install Jinja2
-# pysetup3 install SQLAlchemy
-# pysetup3 install coverage
-#
-# Note that on Windows, distributions which include C extensions (e.g. coverage)
-# may fail due to lack of a suitable C compiler.
-#
+"""
+Virtual environment (venv) package for Python. Based on PEP 405.
+
+Copyright (C) 20011-2012 Vinay Sajip. All Rights Reserved.
+
+usage: python -m venv [-h] [--no-distribute] [--system-site-packages]
+            [--symlinks] [--clear] [--upgrade]
+            ENV_DIR [ENV_DIR ...]
+
+Creates virtual Python environments in one or more target directories.
+
+positional arguments:
+  ENV_DIR               A directory to create the environment in.
+
+optional arguments:
+  -h, --help            show this help message and exit
+  --no-distribute       Don't install Distribute in the virtual environment.*
+  --system-site-packages
+                        Give the virtual environment access to the system
+                        site-packages dir.
+  --symlinks            Attempt to symlink rather than copy.
+  --clear               Delete the environment directory if it already exists.
+                        If not specified and the directory exists, an error is
+                        raised.
+  --upgrade             Upgrade the environment directory to use this version
+                        of Python, assuming Python has been upgraded in-place.
+
+*Note: Distribute support will be available during the alpha phase to
+facilitate testing third-party packages with venvs created using this package.
+This support will be removed after the alpha phase.
+"""
 import base64
 import io
 import logging
@@ -32,13 +36,17 @@ import os
 import os.path
 import shutil
 import sys
+try:
+    import threading
+except ImportError:
+    threading = None
 import zipfile
 
 logger = logging.getLogger(__name__)
 
 class Context:
     """
-    Holds information about a current virtualisation request.
+    Holds information about a current venv creation/upgrade request.
     """
     pass
 
@@ -353,7 +361,8 @@ class DistributeEnvBuilder(EnvBuilder):
                         being processed.
         """
         if not self.nodist:
-            self.install_distribute(context)
+            if threading:
+                self.install_distribute(context)
 
     def reader(self, stream, context):
         """
@@ -381,7 +390,6 @@ class DistributeEnvBuilder(EnvBuilder):
                         being processed.
         """
         from subprocess import Popen, PIPE
-        from threading import Thread
         from urllib.request import urlretrieve
 
         url = 'http://python-distribute.org/distribute_setup.py'
@@ -398,9 +406,9 @@ class DistributeEnvBuilder(EnvBuilder):
         # Install Distribute in the env
         args = [context.env_exe, 'distribute_setup.py']
         p = Popen(args, stdout=PIPE, stderr=PIPE, cwd=binpath)
-        t1 = Thread(target=self.reader, args=(p.stdout, 'stdout'))
+        t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout'))
         t1.start()
-        t2 = Thread(target=self.reader, args=(p.stderr, 'stderr'))
+        t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr'))
         t2.start()
         p.wait()
         t1.join()
@@ -478,8 +486,8 @@ def main(args=None):
         parser.add_argument('--upgrade', default=False, action='store_true',
                             dest='upgrade', help='Upgrade the environment '
                                                'directory to use this version '
-                                               'of Python, assuming it has been '
-                                               'upgraded in-place.')
+                                               'of Python, assuming Python '
+                                               'has been upgraded in-place.')
         options = parser.parse_args(args)
         if options.upgrade and options.clear:
             raise ValueError('you cannot supply --upgrade and --clear together.')