您的位置:首页 > 编程语言 > Python开发

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

2017-03-22 10:10 281 查看
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[/code] 
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息