Your IP : 18.226.165.234
3
�QgqM � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZeje �Z
G dd� d�Zddd�Zddd �Z
e d
kr�dZye
� dZW n4 ek
r� Z zede ejd
� W Y ddZ[X nX eje� dS )z�
Virtual environment (venv) package for Python. Based on PEP 405.
Copyright (C) 2011-2014 Vinay Sajip.
Licensed to the PSF under a contributor agreement.
� Nc @ s� e Zd ZdZddd�Zdd� Zdd � Zd
d� Zdd
� Ze j
dkrHdd� Zd dd�Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� ZdS )!�
EnvBuildera�
This class exists to allow virtual environment creation to be
customized. The constructor parameters determine the builder's
behaviour when called upon to create a virtual environment.
By default, the builder makes the system (global) site-packages dir
*un*available to the created environment.
If invoked using the Python -m option, the default is to use copying
on Windows platforms but symlinks elsewhere. If instantiated some
other way, the default is to *not* use symlinks.
:param system_site_packages: If True, the system (global) site-packages
dir is available to created environments.
:param clear: If True, delete the contents of the environment directory if
it already exists, before environment creation.
:param symlinks: If True, attempt to symlink rather than copy files into
virtual environment.
:param upgrade: If True, upgrade an existing virtual environment.
:param with_pip: If True, ensure pip is installed in the virtual
environment
:param prompt: Alternative terminal prefix for the environment.
FNc C s( || _ || _|| _|| _|| _|| _d S )N)�system_site_packages�clear�symlinks�upgrade�with_pip�prompt)�selfr r r r r r � r
�%/usr/lib64/python3.6/venv/__init__.py�__init__+ s zEnvBuilder.__init__c C sx t jj|�}| j|�}| j}d| _| j|� | j|� | jrF| j|� | j s`| j
|� | j|� |rtd| _| j|� dS )z�
Create a virtual environment in a directory.
:param env_dir: The target directory to create an environment in.
FTN)�os�path�abspath�ensure_directoriesr �create_configuration�setup_pythonr �
_setup_pipr �
setup_scripts�
post_setup)r �env_dir�contextZtrue_system_site_packagesr
r
r �create4 s
zEnvBuilder.createc C s` xZt j|�D ]L}t jj||�}t jj|�s6t jj|�rBt j|� qt jj|�rtj |� qW d S )N)
r
�listdirr �join�islink�isfile�remove�isdir�shutilZrmtree)r r �fnr
r
r �clear_directoryN s zEnvBuilder.clear_directoryc C s� dd� }t jj|�r$| jr$| j|� tj� }||_t jj|�d |_ | j
dk rT| j
n|j }d| |_
||� t j}tj
dkr�d|kr�t jd }ntj}t jjt jj|��\}}||_||_||_tj
dkr�d } d
}
t jj|dd�}n(d
} d}
t jj|ddtjdd� d�}t jj||
� |_}||� ||� tjdk�r|t jdk�r|tj
dk�r|t jj|d�}
t jj|
��s|t jd|
� t jj|| � |_}| |_t jj||�|_||� |S )z�
Create the directories for the environment.
Returns a context object which holds paths in the environment,
for use by subsequent logic.
c S s@ t jj| �st j| � n$t jj| �s0t jj| �r<td| ��d S )NzUnable to create directory %r)r
r �exists�makedirsr r �
ValueError)�dr
r
r �create_if_needed^ s z7EnvBuilder.ensure_directories.<locals>.create_if_needed� Nz(%s) �darwin�__PYVENV_LAUNCHER__Zwin32ZScriptsZInclude�Libz
site-packages�bin�include�libzpython%d.%d� � �posix�lib64l )r
r r"