python开发linux服务器_linux上部署python本地开发环境

将本地开发环境的依赖项目生成清单文件

1.在本地的开发环境中,env下执行:

1

pip3 freeze >requirements.txt

清单文件将会生成在当前项目目录下,内容如下所示

1

2

3

4

5

certifi==2018.4.16

chardet==3.0.4

idna==2.7

requests==2.19.1

urllib3==1.23

将生成后的文件上传到linux服务器

2.将Python项目上传到服务器

1

#略...

第三步:在linux服务器上为项目创建虚拟环境,并安装项目所需的依赖

1.切换到pip3所在的目录 /usr/local/python/bin,执行以下命令

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# 安装虚拟环境

pip3 install virtualenv

# 创建虚拟环境 ENV

virtualenv ENV

# 切换到虚拟环境所在的目录

cd ENV

# 启用虚拟环境

source ./bin/activate

关闭虚拟环境:

deactivate

# 安装依赖清单里的库

pip3 install -r requirements.txt

# 列出当前虚拟环境所安装的依赖库

pip3 list

使用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

2

# 这样的命令在ssh终端退出后,python进程也会被杀掉

python xxx.py &

需要创建一个自定义的系统服务,来保证python程序能够在后台运行。

1.创建系统服务

1

vim /usr/lib/systemd/system/robot.service

内容如下:

1

2

3

4

5

6

7

8

9

10

11

[Unit]

Description=robot

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/python3/bin/ENV/bin/python /usr/local/python3/bin/ENV/p3.py &

PrivateTmp=true

[Install]

WantedBy=multi-user.target

ExecStart为服务启动时执行的命令,不能用相对路径, 一定要全路径。

这里也可以将命令写到任意的.sh文件中,这里写.sh文件的全路径也是可以的。

2.启用自定义系统服务

1

systemctl enable robot

3.启动服务

1

systemctl start robot

可以查看进程,确认一下服务是否启动

1

ps aux|grep robot

完毕!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值