《Python Web开发实战》踩地雷记17/3/22

本文介绍Python包管理工具pip和setuptools的使用方法,包括安装与更新pip,使用setuptools创建Python包,以及利用entry_points配置包的可执行入口。此外,还介绍了使用Vagrant搭建开发环境的具体步骤,包括配置VagrantFile文件实现端口转发、SSH认证等。

1.包管理
使用pip
> sudo apt-get install python-pip -yq
系统自带的pip版本较低,可使用pip的自更新来升级
> sudo pip install pip -U -q #-q静默安装
建议经常更新
2.setuptools
Python包管理工具setuptools详解
setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。
安装
> sudo apt-get install python-setuptools
脚本安装
>wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
如果是开源项目,建议使用类似下面的兼容代码

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

3.entry_points
发布的包经常需要一个或多个可执行的入口,以便用户直接执行和调用。
这里用flake8:

Flake8 runs all the tools by launching the single flake8 command

Flake8通过启动单个flake8命令运行所有工具。
使用entry_points的优点,就是可以让这些入口点能够被其他Python程序动态发现包所提供的功能,但是对应的代码的耦合度非常低。

坑:
>sudo apt-get update 时显示
这里写图片描述
运行> sudo apt-get dist-upgrade

因为遇到了神奇巨坑,所以从头来了一遍,这里记录一下详细的过程

1.安装VirtualBox
VirtualBox
2.使用Vagrant安装
Vagrant,建立一个开发环境目录,下载需要的box,直接下载比较慢,可以看这里如何下载Vagrant的Box,我发现用4G流量下载比用校园网快多了。打开 VagrantFile,修改 config.vm.box 配置为本地文件,将下载的box放到开发环境目录下,修改box的名字:
config.vm.box = "virtualbox.box"
之后就可以执行
> vagrant up
之后开始配置VagrantFile文件VagrantFile 原谅我还得用着谷歌翻译才能看得懂

config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--name", "first1", "--memory", "2046"]
end

这行设置的意思是调用VBoxManage的modifyvm的命令,设置VM的名称为first1,内存为2048MB。

config.vm.hostname = "WEB"

设置hostname非常重要,因为当我们有很多台虚拟服务器的时候,都是依靠hostname來做识别的

config.vm.network :forwarded_port, guest: 9000, host: 9000
config.vm.network :forwarded_port, guest: 3141, host: 3141
config.vm.network :forwarded_port, guest: 5000, host: 5000

这几句厉害了,forwarded_port用来设置端口转发,“guest:9000,host:9000”表示访问本机9000端口的流量会转发到虚拟机上的9000端口,反之亦然。例如你在你的虚拟机上使用nginx跑了一个Go应用,那么你在host机器上的浏览器中打开http://localhost:9000时,Vagrant就会把这个请求转发到VM里面跑在9000端口的nginx服务上。

config.ssh.username = 'ubuntu'

设置Vagrant默认情况下SSH的用户名。如果提供者检测到更合适的用户,则可以自由重写。

config.ssh.password = 'ubuntu'

设置了Vagrant将用来认证SSH用户的密码。

config.ssh.insert_key = false

如果true,Vagrant将自动插入用于SSH的密钥对,以便在检测到机器时替换Vagrant的默认不安全密钥。默认情况下,这是真的。只有在尚未使用私钥进行身份验证或者您依赖于默认的不安全密钥时才有效。如果不关心项目的安全性,并希望继续使用默认的不安全密钥,就将其设置为false。

 config.ssh.private_key_path = ["~/.ssh/id_rsa"]

用于SSH到客户机的私钥的路径。默认情况下,是Vagrant随附的不安全私钥,因为这是公共使用的。如果使用自定义SSH密钥创建自己的自定义框,则应指向该私钥。还可以通过将此设置为数组来指定多个私钥。

config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "~/.ssh/authorized_keys"

Configures provisioners on the machine, so that software can be automatically installed and configured when the machine is created.

config.vm.synced_folder ".", "/vagrant", disabled: true

在机器上配置同步的文件夹,以便主机上的文件夹可以与客机同步。
修改完Vagrantfile的配置后,记得要用
> vagrant reload
命令来重启VM之后才能使用VM更新后的配置。但这个VagrantFile需要先执行
> ssh-keygen
如果出现

‘ssh-keygen’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

要先安装git,推荐一个教程Git教程在环境变量中修改PATH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值