crear entorno virtual python windows
¿Cómo dejar/salir/desactivar un python virtualenv? (8)
(my_env) basant @ basant: ~ / EonTraining / my_env $ desactiva
utilizar ''desactivar''
basant @ basant-Lenovo-E40-80: ~ / EonTraining / my_env $
Gone (my_env);
Estoy usando virtualenv y el virtualenvwrapper. Puedo cambiar entre virtualenv simplemente usando el comando workon.
me@mymachine:~$ workon env1
(env1)me@mymachine:~$ workon env2
(env2)me@mymachine:~$ workon env1
(env1)me@mymachine:~$
Sin embargo, ¿cómo salgo de todas las máquinas virtuales y trabajo de nuevo en mi máquina real? En este momento, la única manera que tengo de volver a
me@mymachine:~$
Es salir del shell y comenzar uno nuevo. Eso es un poco molesto. ¿Hay un comando para trabajar en "nada", y si es así, ¿qué es? Si tal comando no existe, ¿cómo lo haría para crearlo?
Por lo general, la activación de un virtualenv le da una función de shell llamada:
$ deactivate
que vuelve las cosas a la normalidad.
Editar 1
Acabo de ver específicamente el código de virtualenvwrapper,
y, sí, también es compatible con deactivate
como la forma de escapar de todos los virtualenvs.
Editar 2
Si está intentando abandonar un entorno de Anaconda , el procedimiento es un poco diferente: ejecute la source deactivate
comando de dos palabras source deactivate
ya que implementan la desactivación utilizando un script independiente.
bash-4.3$ deactivate
pyenv-virtualenv: deactivate must be sourced. Run ''source deactivate'' instead of ''deactivate''
bash-4.3$ source deactivate
pyenv-virtualenv: no virtualenv has been activated.
Puede usar virtualenvwrapper
para facilitar la forma en que trabaja con virtualenv
Instalando virtualenvwrapper
pip install virtualenvwrapper
Si está utilizando shell estándar, abra su ~/.bashrc
o ~/.zshrc
si usa oh-my-zsh. Añade estas dos líneas:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Para activar un virtualenv existente, use el comando workon:
$ workon myenv
(myenv)$
Para desactivar tu virtualenv:
(myenv)$ deactivate
Aquí está mi tutorial , paso a paso sobre cómo instalar virtualenv y virtualenvwrapper
Tuve el mismo problema mientras trabajaba en un script de instalación, eché un vistazo a lo que hizo bin / active_this.py y lo invirtí.
Ejemplo:
#! /usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
# path to virtualenv
venv_path = os.path.join(''/home'', ''sixdays'', ''.virtualenvs'', ''test32'')
# Save old values
old_os_path = os.environ[''PATH'']
old_sys_path = list(sys.path)
old_sys_prefix = sys.prefix
def deactivate():
# Change back by setting values to starting values
os.environ[''PATH''] = old_os_path
sys.prefix = old_sys_prefix
sys.path[:0] = old_sys_path
# Activate the virtualenvironment
activate_this = os.path.join(venv_path, ''bin/activate_this.py'')
execfile(activate_this, dict(__file__=activate_this))
# Print list of pip packages for virtualenv for example purpose
import pip
print str(pip.get_installed_distributions())
# Unload pip module
del pip
# deactive/switch back to initial interpreter
deactivate()
# print list of initial environment pip packages for example purpose
import pip
print str(pip.get_installed_distributions())
No estoy 100% seguro de que funcione como estaba previsto, es posible que haya perdido algo por completo.
Yo uso zsh-autoenv que se basa en autoenv .
zsh-autoenv automáticamente los archivos
.autoenv.zsh
(conocidos / incluidos en la lista blanca), que normalmente se utilizan en los directorios raíz del proyecto. Maneja los eventos "entrar" y dejar ", anidamiento y ocultación de variables (sobrescritura y restauración).
Aquí hay un ejemplo:
; cd dtree
Switching to virtual environment: Development tree utiles
;dtree(feature/task24|✓); cat .autoenv.zsh
# Autoenv.
echo -n "Switching to virtual environment: "
printf "/e[38;5;93m%s/e[0m/n" "Development tree utiles"
workon dtree
# eof
dtree(feature/task24|✓); cat .autoenv_leave.zsh
deactivate
Entonces, cuando salgo del directorio dtree
, el entorno virtual se dtree
automáticamente.
para activar el entorno virtual de Python:
$cd ~/python-venv/
$./bin/activate
para desactivar:
$deactivate
Definí un workoff de alias como el opuesto de workon:
alias workoff=''deactivate''
Fácil de recordar:
[bobstein@host ~]$ workon django_project
(django_project)[bobstein@host ~]$ workoff
[bobstein@host ~]$
$ deactivate
Si esto no funciona, intente
$ source deactivate
Cualquiera que sepa cómo funciona el source
bash pensará que es extraño, pero algunos envoltorios / flujos de trabajo en torno a virtualenv se implementan como un complemento / contraparte a la source activate
. YMMV