需求:在离线环境中部署python3.7.9
环境:windowns2012 R2 standard 64位
2021年6月4日
1. 下载python离线包
下载地址:https://www.python.org/ftp/python/3.7.9/
下载内容:python-3.7.9-embed-amd64.zip
可根据部署环境调整,因为权限问题,这个win2012不容许通过.exe文件安装软件,所以选择带‘embed’字符的压缩包。
2.下载pip安装文件
下载地址:https://pip.pypa.io/en/stable/installing/
下载内容:在Installing with get-pip.py条目下的get-pip.py文件
排版可能变换,只要找get-pip.py即可
2.1 下载pip离线安装文件,修复移动后产生的错误
下载地址:https://pypi.tuna.tsinghua.edu.cn/simple/pip/
下载内容:pip-9.0.3-py2.py3-none-any.whl
注意后缀,是wheel的文件
3.本地安装
文件下载下来后,解压python-3.7.9-embed-amd64.zip,我解压到了/py3.7.9/里,把get-pip.py和pip-9.0.3-py2.py3-none-any.whl移动到解压的文件夹内,在该文件内按住Shift键右击空白处,选择【在此处打开 Powershell 窗口】,
运行
.\python.exe .\get-pip.py -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
#一开始用的清华镜像总报错,也找不到原因,然后换了一个就好了
下载安装成功后,/py3.7.9/里就多出来Lib和Scripts文件夹,
3.1 修改
记事本打开python37._pth,去除import site的注释
python37.zip
.
# Uncomment to run site.main() automatically
import site
查看已安装的Lib,运行
PS E:\py3.7.9> .\python.exe -m pip list
Package Version
---------- -------
pip 21.1.2
setuptools 57.0.0
wheel 0.36.2
PS E:\py3.7.9>
到这里在本地的准备工作算是完成了,打包文件夹,然后上传到win2012
4. 修复pip
上传压缩包到服务器后,再次运行.\python.exe -m pip list开始报错,这是因为pip.exe用绝对路径来找python,现在换位置了,路径就失效了,通过重新安装可以很容易修复这个错误
H:\py3.7.9> .\python -m pip install -U pip-21.1.2-py3-none-any.whl --force-reinstall
5. 安装第三方库
简单用python解释器测试之后,发现还需要一些库来支持,不知道第一次上传前安装好Lib的话会不会像pip一样报错?
在本地下载Lib,这里用gevent举例,我指定了版本号,最新版只写gevent即可
pip download -d your_offline_packages gevent==20.6.2
pip会把需要的依赖包也一起下载
把文件夹[your_offline_packages]打包上传到win2012的[py3.7.9]文件夹里并解压;
用pip来安装
H:\py3.7.9> .\python -m pip install --no-index --find-links=/your_offline_packages gevent
# 如果遇到文件夹不存在报错,可修改文件夹地址为绝对路径
H:\py3.7.9>.\python -m pip install --no-index --find-links=H:\py3.7.9\pandas_offline_packages pandas
然后在python解释器中import gevent测试报错,用修复pip的方法修复:在镜像网站下载gevent的.whl文件重新用pip安装即可
补充个简单的编译器
因为不能用.exe安装软件,一开始用记事本修改脚本,有点麻烦,发现管理员预装了sublime text,正好用这个
1、打开sublimeText,在菜单栏找到Tools——>编译系统——>新编译系统
在新的配置文件中输入如下配置,我的路径是H:\py3.7.9\python.exe
{
"cmd": ["H:\\py3.7.9\\python.exe","-u","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
}
2、Ctrl+S保存到SublimeText——>Data——>Packages——>User下,就可以选择自己命名的编译器了
3、创建一个text.py的文件,选好编译器,Ctrl+B就可以了调用了,直接新建文件没有后缀,不是.py文件所以会报错,编译器识别文件的话,字符会有不同的颜色