File: //opt/alt/python37/lib/python3.7/site-packages/clwizard/modules/__pycache__/python.cpython-37.pyc
B
VJ�� ��� @ s� d dl mZ d dlZd dlmZ d dlmZmZmZ d dl m
Z
d dlmZm
Z
d dlmZmZ d dlmZ d d
lmZ G dd� de�ZdS )
� )�absolute_importN)�Feature)�ExternalProgramFailed�get_passenger_package_name�is_litespeed_running)�
get_ui_config)�CL_SELECTOR_BIN�MODULES_LOGS_DIR)�InstallationFailedException�PackageMissingError)�installed_interpreters_list� )�WizardInstallerc sx e Zd Zej�ed�Zej Z
� fdd�Zdd� Zdd� Z
edd � �Zd
d� Zdd
� Zdd� Zdd� Zedd� �Z� ZS )�PythonInstallerz
python.logc s t t| ��� d S )N)�superr �__init__)�self)� __class__� �py/clwizard/modules/python.pyr s zPythonInstaller.__init__c
C s~ g }x&|D ]}d|� dd� }|�|� q
W | j�dd�|�� y| j|� W n* tk
rx } zt� |�W dd}~X Y nX dS )zd
Install given python versions
:param versions: versions of python packages
z
alt-python�.� z/Try to install Python package with versions: %s�,N)�replace�append�
app_logger�info�joinZ_install_groupsr r
)r �versions�groups�vZpackage_name�er r r �_install_python_versions s
z(PythonInstaller._install_python_versionsc
C sV d}t j�|�sdS y| �d|g� W n* tk
rP } zt� |�W dd}~X Y nX dS )a
In order to make python apps work on Litespeed server
we need to do run extra script
see docs for details:
https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cloudlinux:enable_passenger
:return:
z9/usr/local/lsws/admin/misc/enable_ruby_python_selector.shNZsh)�os�path�isfile�_run_commandr r
)r Zlitespeed_scriptr! r r r �_configure_for_litespeed_server- s z/PythonInstaller._configure_for_litespeed_serverc
C sF yddl m} W n, tk
r< } ztd�|�W d d }~X Y nX | d�S )Nr )�get_default_versionZ
lvemanager�python)Zclselect.clselectctlr( �ImportErrorr )r( r! r r r �_get_python_default_version? s
z+PythonInstaller._get_python_default_versionc
C sZ | j �d|� y| �tdddd|dg� W n* tk
rT } zt� |�W d d }~X Y nX d S )Nz,trying to set default python version as '%s'�setz
--interpreterr) z--default-versionz--json)r r r&