From 6272f36080bd440a5825b526f4c06223c5bb9fbb Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Mon, 18 Mar 2019 16:30:45 -0700 Subject: [PATCH 1/5] Remove python venv Remove the python venv requirements and instead just use the native python and pip pacakges. Signed-off-by: Alistair Francis Upstream-Status: Inappropriate [embedded specific] --- dev_setup.sh | 36 ------------------------------------ start-mycroft.sh | 13 ------------- venv-activate.sh | 44 +------------------------------------------- 3 files changed, 1 insertion(+), 92 deletions(-) diff --git a/dev_setup.sh b/dev_setup.sh index e0b07bf25cf..aed54b2167a 100755 --- a/dev_setup.sh +++ b/dev_setup.sh @@ -310,18 +310,6 @@ function install_deps() { fi } -VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"} - -function install_venv() { - ${opt_python} -m venv "${VIRTUALENV_ROOT}/" --without-pip - # Force version of pip for reproducability, but there is nothing special - # about this version. Update whenever a new version is released and - # verified functional. - curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0' - # Function status depending on if pip exists - [ -x "${VIRTUALENV_ROOT}/bin/pip" ] -} - install_deps # Configure to use the standard commit template for @@ -355,15 +343,7 @@ else fi fi -if [ ! -x "${VIRTUALENV_ROOT}/bin/activate" ] ; then - if ! install_venv ; then - echo "Failed to set up virtualenv for mycroft, exiting setup." - exit 1 - fi -fi - # Start the virtual environment -source "${VIRTUALENV_ROOT}/bin/activate" cd "${TOP}" # Install pep8 pre-commit hook @@ -380,22 +360,6 @@ fi PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) -# Add mycroft-core to the virtualenv path -# (This is equivalent to typing 'add2virtualenv $TOP', except -# you can't invoke that shell function from inside a script) -VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth" -if [ ! -f "$VENV_PATH_FILE" ] ; then - echo "import sys; sys.__plen = len(sys.path)" > "$VENV_PATH_FILE" || return 1 - echo "import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)" >> "$VENV_PATH_FILE" || return 1 -fi - -if ! grep -q "$TOP" $VENV_PATH_FILE ; then - echo "Adding mycroft-core to virtualenv path" - sed -i.tmp '1 a\ -'"$TOP"' -' "${VENV_PATH_FILE}" -fi - # install required python modules if ! pip install -r requirements.txt ; then echo "Warning: Failed to install all requirements. Continue? y/N" diff --git a/start-mycroft.sh b/start-mycroft.sh index b9514a61ba5..64e0216a62f 100755 --- a/start-mycroft.sh +++ b/start-mycroft.sh @@ -20,7 +20,6 @@ script=${0} script=${script##*/} cd -P "$( dirname "$SOURCE" )" DIR="$( pwd )" -VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${DIR}/.venv"} function help() { echo "${script}: Mycroft command/service launcher" @@ -76,19 +75,11 @@ function name-to-script-path() { esac } -function source-venv() { - # Enter Python virtual environment, unless under Docker - if [ ! -f "/.dockerenv" ] ; then - source ${VIRTUALENV_ROOT}/bin/activate - fi -} - first_time=true function init-once() { if ($first_time) ; then echo "Initializing..." "${DIR}/scripts/prepare-msm.sh" - source-venv first_time=false fi } @@ -225,15 +216,12 @@ case ${_opt} in # launch-background ${_opt} # ;; "unittest") - source-venv pytest test/unittests/ --cov=mycroft "$@" ;; "singleunittest") - source-venv pytest "$@" ;; "skillstest") - source-venv pytest test/integrationtests/skills/discover_tests.py "$@" ;; "audiotest") @@ -243,7 +231,6 @@ case ${_opt} in launch-process ${_opt} ;; "sdkdoc") - source-venv cd doc make ${opt} cd .. diff --git a/venv-activate.sh b/venv-activate.sh index d1e7bcb44e7..10b46d4de3b 100644 --- a/venv-activate.sh +++ b/venv-activate.sh @@ -22,49 +22,7 @@ # wrap in function to allow local variables, since this file will be source'd function main() { - local quiet=0 - - for arg in "$@" - do - case $arg in - "-q"|"--quiet" ) - quiet=1 - ;; - - "-h"|"--help" ) - echo "venv-activate.sh: Enter the Mycroft virtual environment" - echo "Usage:" - echo " source venv-activate.sh" - echo "or" - echo " . venv-activate.sh" - echo "" - echo "Options:" - echo " -q | --quiet Don't show instructions." - echo " -h | --help Show help." - return 0 - ;; - - *) - echo "ERROR: Unrecognized option: $@" - return 1 - ;; - esac - done - - if [ "$0" == "$BASH_SOURCE" ] ; then - # Prevent running in script then exiting immediately - echo "ERROR: Invoke with 'source venv-activate.sh' or '. venv-activate.sh'" - else - local SRC_DIR="$( builtin cd "$( dirname "${BASH_SOURCE}" )" ; pwd -P )" - source ${SRC_DIR}/.venv/bin/activate - - # Provide an easier to find "mycroft-" prefixed command. - unalias mycroft-venv-activate 2>/dev/null - alias mycroft-venv-deactivate="deactivate && unalias mycroft-venv-deactivate 2>/dev/null && alias mycroft-venv-activate=\"source '${SRC_DIR}/venv-activate.sh'\"" - if [ $quiet -eq 0 ] ; then - echo "Entering Mycroft virtual environment. Run 'mycroft-venv-deactivate' to exit" - fi - fi + echo "Not entering Python VENV" } main $@ -- 2.21.0