python3 部署

前幾天去聽了北京python-conf,老師們都在宣傳python3的各類好處,和自力討論以後,決定把本身的小項目都升級到python3。其實代碼改起來還好,由於都是比較小的項目,問題主要卡在部署。我使用的雲服務器都是ubuntu14.04的,上面默認的python3是3.4版本,而我本地的是3.6.3版本。雖然目前沒問題,但爲未來起見,以及爲了讓本地開發和線上的python版本儘可能一致,故嘗試在服務器上也用3.6.3的版本。python

一開始的時候試圖參照這兒 的第一個方法安裝:git

  1. 首先經過 apt-get install python3.6.3 安裝py3.6
  2. 而後用推薦的python3.6 -m venv virtualenv_name 的方法來建立虛擬環境
  3. 此時報錯提示apt-get install python3-venv,根據搜到的資料,運行sudo apt-get install python3.6-venv
  4. 此時又報錯python3.6-venv : Depends: python-pip-whl (>= 8.1.0-2) but it is not going to be installed。應該是pip版本過低。
  5. 使用 python get-pip.py 成功升級pip版本以後,再次運行sudo apt-get install python3.6-venv,仍然報錯。
  6. 放棄。決定仍是換方法。

以後使用了上述連接的第二種方法安裝pyenv和python3.6.3,而後用
~/.pyenv/versions/3.6.3/bin/python -m venv {{ virtualenv_path }}'來建立虛擬環境。使用這種方法的時候,pyenv會幫咱們把各類東西都處理好,特別是pip。期間沒碰到其餘問題。github

另外,運行pyenv時須要將pyenv的路徑添加到$PATH中並運行對應的command,持久化的方法就是寫入.bashrc。在ansible中找到了須要的模塊blockinfile,很好用。ubuntu

- name: Ensure .bashrc is configured
  blockinfile:
    dest: "{{ ansible_env.HOME }}/.bashrc"
    block: |
      export PATH="~/.pyenv/bin:$PATH"
      eval "$(pyenv init -)"
      eval "$(pyenv virtualenv-init -)"
    marker: '# {mark} ANSIBLE MANAGED BLOCK - pyenv'
    insertbefore: BOF
    create: yes

地址bash

相關文章
相關標籤/搜索