在无网centos中简易部署python环境

1 准备阶段

为了模拟真实的环境,我用docker从官方仓库pull下来了一个centos系统,然后安装了python3.6.0。

1.1 创建容器

  1. 利用docker images查看所有的镜像;
  2. 根据镜像的名字,如centos,创建容器,注意容器要有交互的shell,因此命令为:docker run -it centos '/bin/bash'
  3. 利用docker ps -a查看所有的容器,利用docker rename <container-id> test将容器重命名为test;
  4. 可以从本地传输文件到容器中;
  5. 利用docker start -i test启动容器。

1.2 安装python

虽然介绍的是在断网情况下安装python,但是系统中仍然需要一些必须的命令,总结了一下,包括:gccmakezlib*。一般这些命令服务器都会预装,如果实在没有,那就只能网络上下好考进去手动安装了,这不是本文的重点,因此,针对此类问题以下给出的都是有网条件下的解决方案。

解压从官网下载的压缩包,进入解压后的文件夹:

  1. 指定python3的安装位置(注意:文件夹必须事先创建;系统必须要有GCC环境,如果没有,运行yum install gcc进行安装),运行以下命令:
    ./configure --prefix=/usr/path/to/python3
    
  2. 然后运行make && make install(没有make命令就用yum install make安装;提示缺少zlib的解压缩类库,运行yum install zlib*安装即可)。
  3. 第三步,创建一个软链接,目的是从任何位置都可以启动python3(需要注意的是,linux系统的正常运行需要python2,因此不能把系统自带的python2删除,为区分两者,将新装的python指定为python3),运行以下命令:
    ln -s /usr/path/to/python3/bin/python3 /usr/bin/python3
    
  4. 【这一步还不确定需不需要,执行上述三步后就可以用python3打开python3的控制台了】最后一步,修改~/.bashrc文件,在最后添加如下代码:
    PATH=$PATH:$HOME/bin:/path/to/python3/bin
    export PATH
    
    保存退出,然后source ~/.bashrc使之生效。

这时,输入python3就会进入python3.6.0的环境。

2 实施阶段

2.1 创建虚拟环境

为了各项目的独立,需要创建虚拟环境。命令如下:

python3 -m venv /path/to/new/virtual/environment

激活虚拟环境:

source /path/to/new/virtual/environment/bin/activate

关闭虚拟环境:

deactivate

2.2 安装依赖包

  1. 在虚拟环境开启的情况下,利用pip install <pkgs>安装项目所需的依赖包;
  2. 执行pip freeze > requirements.txt将包的信息写入requirements.txt文件中;

2.3 迁移至无网状态下安装依赖包

  1. 利用pip download --destination-directory DIR -r requirements.txt将所需依赖包下载至DIR目录下;
  2. requirements.txtDIR都利用docker cp命令导出,然后复制到目标服务器上,注意目标服务器的python版本需要与容器中的版本一致;
  3. 执行pip install --no-index --find-links=DIR -r requirements.txt,即可实现从本地安装依赖环境。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 安装Python 首先,需要安装Python。如果已经安装了Python,请跳过此步骤。在CentOS上安装Python可以使用以下命令: ``` sudo yum install python3 ``` 2. 安装pip pip是Python管理器,用于安装和管理Python。在CentOS上安装pip可以使用以下命令: ``` sudo yum install epel-release sudo yum install python-pip ``` 3. 安装websocket库 使用pip安装websocket库: ``` pip install websocket ``` 4. 编写websocket服务端代码 在Python,使用`websocket`模块来创建websocket服务端。以下是一个简单的websocket服务端代码示例: ``` import websocket def on_message(ws, message): print("Received: ", message) def on_error(ws, error): print("Error: ", error) def on_close(ws): print("Closed") def on_open(ws): print("Opened") if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("ws://localhost:8000/", on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open ws.run_forever() ``` 这个简单的代码会创建一个websocket连接,并在接收到消息时打印出来。 5. 运行websocket服务端 在终端运行websocket服务端代码: ``` python websocket_server.py ``` 这将创建一个websocket连接并等待客户端连接。如果一切正常,你应该能够看到类似以下输出: ``` --- request header --- GET / HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: localhost:8000 Origin: http://localhost:8000 Sec-WebSocket-Key: koxwGJfZ7LlTjT9o9dGc+g== Sec-WebSocket-Version: 13 ----------------------- --- response header --- HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: 1dQ2wgt/fnBjGtwTzXAfqRxjvUo= ----------------------- Opened ``` 6. 编写websocket客户端代码 在Python,使用`websocket`模块来创建websocket客户端。以下是一个简单的websocket客户端代码示例: ``` import websocket def on_message(ws, message): print("Received: ", message) def on_error(ws, error): print("Error: ", error) def on_close(ws): print("Closed") def on_open(ws): print("Opened") ws.send("Hello, World!") if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("ws://localhost:8000/", on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open ws.run_forever() ``` 这个简单的代码会创建一个websocket连接,并在连接打开时向服务端发送一条消息。 7. 运行websocket客户端 在终端运行websocket客户端代码: ``` python websocket_client.py ``` 这将创建一个websocket连接并向服务端发送一条消息。如果一切正常,你应该能够看到类似以下输出: ``` --- request header --- GET / HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: localhost:8000 Origin: http://localhost:8000 Sec-WebSocket-Key: y+6GjJ7VuiFh+JW8XvU6Ag== Sec-WebSocket-Version: 13 ----------------------- --- response header --- HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: G4g4dT4Zm1V0I4F0f9QzS1gYt+M= ----------------------- Opened send: b'Hello, World!' Received: Hello, World! Closed ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芳樽里的歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值