专栏首页python3python3 部署

python3 部署

前几天去听了北京python-conf,老师们都在宣传python3的各种好处,和自力讨论之后,决定把自己的小项目都升级到python3。其实代码改起来还好,因为都是比较小的项目,问题主要卡在部署。我使用的云服务器都是ubuntu14.04的,上面默认的python3是3.4版本,而我本地的是3.6.3版本。虽然目前没问题,但为将来起见,以及为了让本地开发和线上的python版本尽量一致,故尝试在服务器上也用3.6.3的版本。

一开始的时候试图参照这儿 的第一个方法安装:

  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。期间没碰到其他问题。

另外,运行pyenv时需要将pyenv的路径添加到$PATH中并运行对应的command,持久化的方法就是写入.bashrc。在ansible中找到了需要的模块blockinfile,很好用。

- 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python学习之pyenv环境搭建

    用户2398817
  • robot自动化测试环境安装

    简单说下安装思路,先装语言(python3),再安装包管理工具(pip),然后才是自动化框架(robot)和lib插件(requests等)。对于一些基本的概念...

    用户2398817
  • Mac安装多个python版本

       Mac OS里面的Python默认为2.7版本,开发的原因需要安装Python3,又不能把2.7卸载掉,所以就需要多版本之间共存。      如果喜欢权威...

    用户2398817
  • python学习之pyenv环境搭建

    用户2398817
  • 有哪些你不知道的python小工具

    python作为越来越流行的一种编程语言,不仅仅是因为它语言简单,有许多现成的包可以直接调用。

    用户2398817
  • 不谈技术细节,自然语言处理能做些什么?| 洞见

    深度神经网络的爆发使得机器学习受到了广泛的关注, 而NLP(自然语言处理)又是其中最受关注的部分。ThoughtWorks正在尝试NLP技术的商业化落地,例如对...

    ThoughtWorks
  • mac> python3 安装Djang

    说明:mac系统自带了python2.x (在/System/Library/Frameworks/Python.Frameworks/Version/2.x/...

    用户2398817
  • Batch Normalization

    我们知道Sigmoid函数在定义域为$(-\infty,-4) \cup (4,\infty)$内导数趋于0,由于容易出现梯度消失的现象,因此ReLU函数使用的...

    mathor
  • 给图片或文字加上鼠标悬浮时旋转动画

    雨尘
  • CVPR 2019 | 国防科大提出双目超分辨算法,效果优异代码已开源

    近日,来自国防科技大学等单位的学者提出了新型双目超分辨算法,充分利用了左右图的信息提升图像超分辨效果;

    OpenCV学堂

扫码关注云+社区

领取腾讯云代金券