服务器环境准备
首先要准备好对应的python,服务器自带python2,如果要python3需要手动下载安装
并且最好是准备好virtualenv虚拟环境,方便程序环境独立运行不会发生包的冲突
pycharm flask项目文件目录
这是一个windows下写好的flask项目
venv是pycharm帮忙创建好的虚拟环境
用里面带有的python.exe是可以用来运行项目的,也就是说windows下写好的项目,直接拷到其他windows电脑上是可以直接运行的,同理如果用Linux写好的项目就可以直接在其他Linux上跑。但是他们的虚拟环境并不是跨平台的。
使用XFTP5工具直接将整个项目拷贝到服务器上
windows下的虚拟环境Linux上用不上,可有可无
激活虚拟环境
用相应的python版本进入到项目目录激活虚拟环境
[root@Foehn ~]# cd flask/
[root@Foehn flask]# virtualenv venv
Using base prefix '/usr/local/python3'
New python executable in /root/flask/venv/bin/python3
Also creating executable in /root/flask/venv/bin/python
Installing setuptools, pip, wheel...done.
[root@Foehn flask]# source venv/bin/activate
调用 activate 指令后命令符前就会出现 (venv) 字样。 可通过 deactivate 退出虚拟环境。可以放心安装包了
(venv) [root@Foehn flask]#
安装依赖包
可以通过项目下的pip文件通过freeze命令生成requirements.txt的方式
到对应环境下
pip install -r requirements.txt
来自动安装所需的python包,但是经过实验发现windows下的包还是和Linux的包版本有很大差别,小项目还是手动安装所需的包吧,也可以按照格式手工配置一个requirements.txt,不指定后面的版本也行
直接在虚拟环境下pip install就好
包安装完成
简单测试运行一下flask
将main函数中的app.run修改
if __name__ == '__main__':
app.run(host='0.0.0.0')
虚拟环境下运行
Successfully installed numpy-1.14.1
(venv) [root@Foehn flask]# python main.py
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 493-808-566
效果
这是在本机运行的效果
这是在服务器上的效果
问题解决
python3代码中print中带有中文的变量会报错
原因可能是Linux的LANG没有设置为中文
将系统设置为中文
[root@Foehn ~]# zh_CN.UTF-8