2017-03-03 112 views
6

如何使用Ansible使用Python標準庫中的venv模塊創建virtualenv?Ansible使用venv模塊創建virtualenv

手動,一個會做這個創造VENV:

python3 -m venv <venv-name> 

如何做到這一點使用Ansible?

+1

提問前做一些調查研究,你可以用pip模塊創建virtualenv(沒有名字)。 – Kyslik

+2

@kyslik我已經多次閱讀文檔,搜索到了,並試圖讓我的電腦上的東西工作。我知道可信的pip模塊中的'virtualenv_command'選項。但是,ansible給出了一個錯誤,即'python3 -m venv'不是一個有效的命令。所以我很失落。 – Flux

+1

@kyslik不幸的是,如果你不給pip一個名字,那麼ansible會拋出一個錯誤。 – Flux

回答

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

如果python3確實是片狀,你可以指定你想使用哪個版本的Python:

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

我想回答你的問題。

+1

語法已損壞。你似乎並不瞭解Python 3支持的評論的含義。這不是關於virtualenv中的Python版本,而是Python Ansible使用哪個版本來運行其模塊。你不要在你的例子中設置它。 – techraf

+0

我正在使用python標準庫中的venv模塊來創建虛擬環境。不是virtualenv模塊。 – Flux

4

我碰到了同樣的問題,今晚,發現指定的完整路徑的解釋,包括參數,工作對我來說(至少它在ansible==2.2.2.0):

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

沒有爲我工作(安全2.3.0.0) – Igonato

+0

沒關係,完美的作品。 +1 – Igonato

+0

使用python可執行文件的完整路徑很重要。否則ansible說它無法在PATH dirs中找到它。 – and