linux上部署python本地开发环境
将本地开发环境的依赖项目生成清单文件
1.在本地的开发环境中,env下执行:
1
|
pip3 freeze >requirements.txt
|
清单文件将会生成在当前项目目录下,内容如下所示
1
|
certifi==2018.4.16
|
将生成后的文件上传到linux服务器
2.将Python项目上传到服务器
1
|
#略...
|
第三步:在linux服务器上为项目创建虚拟环境,并安装项目所需的依赖
1.切换到pip3所在的目录 /usr/local/python/bin,执行以下命令
1
|
# 安装虚拟环境
|
使用pip3 install -r requirements.txt 报:
解决办法:
我们都知道,想要进行pip升级,其实只要在命令行运行以下代码即可:
python -m pip install --upgrade pip
但是由于种种原因,该联网直接下载更新包的方法总是会被不知名的原因打断,并反复提示上图的错误。经过种种尝试和网络上资料搜寻,本人终于试出一种可行方法,其需要三个注意事项:
1.不要直接win+R然后cmd,而是要选择“开始”—“Windows系统”—“命令提示符”—右键“以管理员身份运行”!!!
2.不要用家用WiFi,开手机热点连接!!!
3.管理员身份运行命令提示符后,使用镜像下载升级!!!代码如下:
python -m pip install --upgrade pip -i https://pypi.douban.com/simple
问题一:安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
1、执行如下命令:
yum install libffi-devel
2、从"./configure ..."重新安装
问题二:pip3 install时报错“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”
先安装openssl-dev,然后重新编译安装,只是在编译的过程中加入 --enable-optimizations
ubuntu:
sudo apt-get install libffi-dev
或者
-
sudo apt-get update
-
-
sudo apt-get upgrade
-
-
sudo apt-get dist-upgrade
-
-
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
-
-
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
-
-
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
-
-
sudo apt-get install libssl-dev openssl
-
-
sudo apt-get install libffi-dev
centos7
yum install libffi-devel -y
第四步:添加自定义系统服务(很重要)
1
|
# 这样的命令在ssh终端退出后,python进程也会被杀掉
|
需要创建一个自定义的系统服务,来保证python程序能够在后台运行。
1.创建系统服务
1
|
vim /usr/lib/systemd/system/robot.service
|
内容如下:
1
|
[Unit]
|
ExecStart为服务启动时执行的命令,不能用相对路径, 一定要全路径。
这里也可以将命令写到任意的.sh文件中,这里写.sh文件的全路径也是可以的。
2.启用自定义系统服务
1
|
systemctl enable robot
|
3.启动服务
1
|
systemctl start robot
|
可以查看进程,确认一下服务是否启动
1
|
ps aux|grep robot
|
完毕!
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理或删除。