2017-03-03 4 views
6

Wie kann man verwenden Ansible, um eine virtualenv mit dem venv-Modul aus der Python-Standard-Bibliothek zu erstellen?Ansible erstellen Sie eine virtualenv mit dem venv-Modul

manuell, täte man dies eine Venv zu erstellen:

python3 -m venv <venv-name> 

Wie kann ich dies mit ansible tun?

+1

einige der Forschung, bevor er fragte, du kannst virtualenv mit pip-modul (ohne name) erstellen. – Kyslik

+2

@kyslik Ich habe die Dokumentation schon mehrmals gelesen, SO durchsucht und versucht, die Dinge auf meinem Computer funktionieren zu lassen. Ich bin mir der Option "virtualenv_command" im ansible pip-Modul bewusst. Ansible gibt jedoch einen Fehler, der besagt, dass 'python3 -m venv' kein gültiger Befehl ist. So bin ich am Verlieren. – Flux

+1

@kyslik Leider wird Ansible einen Fehler ausgeben, wenn Sie pip keinen Namen geben. – Flux

Antwort

-2
# Install specified python requirements in indicated (virtualenv). 
- pip: 
    requirements: /my_app/requirements.txt 
    virtualenv: /my_app/venv 

Wenn python3 in der Tat ist flockig zu sein, können Sie angeben, welche Version von Python Sie verwenden möchten:

# Install specified python requirements in indicated (virtualenv). 
- pip: 
    requirements: /my_app/requirements.txt 
    virtualenv: /my_app/venv 
    virtualenv_command: virtualenv-2.7 

Ich denke, dass Ihre Frage beantwortet.

+1

Syntax is broken. Und Sie haben die Bedeutung der Bemerkung zur Python 3-Unterstützung scheinbar nicht verstanden. Es ging nicht um die Version von Python innerhalb des virtualenv, sondern um die Version von Python, die Ansible verwendet, um seine Module auszuführen. Sie legen das in Ihrem Beispiel nicht fest. – techraf

+0

Ich verwende das venv-Modul aus der Python-Standardbibliothek, um virtuelle Umgebungen zu erstellen. Nicht das virtualenv Modul. – Flux

4

Ich lief in das gleiche Problem heute Abend und stellte fest, dass Sie den vollständigen Pfad zum Interpreter, dh auch die Argumente, für mich gearbeitet (zumindest tut es in ansible==2.2.2.0):

- pip: 
    requirements: /website/requirements.txt 
    virtualenv: /opt/website-venv 
    virtualenv_command: /usr/bin/python3.6 -m venv 
+0

Hat nicht für mich funktioniert (ansible 2.3.0.0) – Igonato

+0

Gern, funktioniert einwandfrei. +1 – Igonato

+0

Es ist wichtig, den vollständigen Pfad zur ausführbaren Python-Datei zu verwenden. Ansonsten sagt ansible, dass es sie nicht in PATH-Verzeichnissen finden kann. – and

Verwandte Themen