Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

315
Vistas
La mejor manera de ejecutar un script de python en un entorno de conda dado

Quiero ejecutar una secuencia de comandos de python executed.py desde otra secuencia de comandos de python trigger.py usando el paquete de subproceso. El executed.py debe ejecutarse en un entorno de conda diferente al de trigger.py (digamos executed_env y trigger_env ). ¿Cuál es la mejor manera de hacer eso? Mi código actual de trigger.py es:

 command = "python executed.py --option1 -dir /path/to/dir" args = shlex.split(command) my_subprocess = subprocess.Popen(args)

Devuelve un error ya que execute.py se executed.py en el entorno trigger_env .

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Investigué un poco sobre los métodos integrados de conda y encontré lo siguiente. La primera es una solución alternativa y la segunda es la solución final incorporada (no disponible al momento de escribir esta publicación).

  1. envoltorios de conda . Guilherme Melo creó un contenedor para los ejecutables de python dentro de un entorno conda. Si lo configura como el intérprete de python en su IDE, por ejemplo, PyCharm, activará el entorno conda desde el que se llama y luego llamará al intérprete de python. Mire aquí en la sección "Creación de contenedores conda": https://pypi.org/project/exec-wrappers/

  2. corrida Una larga discusión en la página de conda github sobre una forma estándar y rápida de ejecutar un comando dentro de un entorno condujo a la implementación de un nuevo comando (en realidad, una reinvocación como estaba disponible antes): conda run

Se describe en el número 7320 y se lanzará en conda-4.6, con suerte, en octubre de 2018.

over 4 years ago · Santiago Trujillo Denunciar

0

Si solo necesita usar el otro python, creo que simplemente necesita usar la ruta completa al otro python en su command .

Intente ingresar a su executed_env (es decir source activate executed_env si es Linux) y haga which python . Supongamos que devuelve HOME/.conda/envs/executed_env/bin/python ahora que se convierte en el python que usa en su comando, es decir, command = "HOME/.conda/envs/executed_env/bin/python executed.py --option1 -dir /path/to/dir" . Este

Por ejemplo, ejecute executed.py en una versión diferente de python.

  • Cree su entorno conda create -n py27 python=2.7 este es trigger_env .
  • Cree su entorno conda create -n py35 python=3.5 este es el env executed_env .
  • Obtenga la ruta completa de python a py35 ejecutando source activate py35 y luego which python (llamémoslo EXECUTED_PYTHON para esta descripción). Desactivar a través de source deactivate .
  • Luego creamos executed.py

     import sys print(sys.version)
  • Luego el trigger.py (incluye los argumentos pero no hacen nada)

     command = "EXECUTED_PYTHON executed.py --option1 -dir /path/to/dir" args = shlex.split(command) my_subprocess = subprocess.Popen(args)
  • Ahora vamos a ejecutarlo en trigger_env -- source activate py27 y python trigger.py .

  • Esto imprime 3.5.2 |Continuum Analytics, Inc. [...] (siendo 3.5 la parte importante). Puede ver que está usando el otro python en executed_env .
over 4 years ago · Santiago Trujillo Denunciar

0

Usando conda en el entorno de Windows, solo copié la forma en que conda lo hace para iniciar diferentes cuadernos jupyter, cada uno desde un entorno diferente. Todos los accesos directos llaman al script "C:\ProgramData\Anaconda3\cwp.py" usando "C:\ProgramData\Anaconda3\python.exe", luego, con parámetros adicionales, puede elegir el entorno y el archivo que se ejecutará.

En mi caso, nombre del entorno = AutomateXXReporting, archivo a ejecutar = C:\Users\ismael.serrano\Documents\GIT\xxx\notebooks\exports\get_JIRA_user_streams.py

 C:\ProgramData\Anaconda3\python.exe C:\ProgramData\Anaconda3\cwp.py C:\Users\ismael.serrano\.conda\envs\AutomateXXReporting C:\Users\ismael.serrano\.conda\envs\AutomateXXReporting\python.exe C:\Users\ismael.serrano\Documents\GIT\xxx\notebooks\exports\get_JIRA_user_streams.py

Anteriormente había procedido con éxito como me indicó Paul, pero llegué a un caso en el que no era suficiente. El python de la ruta completa no pudo encontrar algunas bibliotecas, usando cwp.py funcionó.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda