Python环境离线部署

几种方式部署Python;
方式1: 手动拷贝粘贴:
   首先拷贝环境目录到新机器位置;
   使用 conda create -n BBB —clone [拷贝过来的环境目录]
   参考:
    https://blog.csdn.net/shincling/article/details/75534121
    http://www.voidcn.com/article/p-skckvhci-bpc.html


方式2: 使用 conda pack 工具方式
     首先在开发环境机器上安装conda pack: conda install -c conda-forge conda-pack
     打包开发项目: conda pack -n my_env
     在新机器上解压上一步的压缩包
     激活python虚拟环境
     Conda-unpack 清除一些前缀(我也不知这是什么)
     参考:https://conda.github.io/conda-pack/


方式3: 使用conda的命令执行远程离线环境部署(方便二次开发)— 有点类似方式1, 但该方式设置了本地channel,方便后续开发
    首先使用 conda list -e > packagelist.txt 命令导出环境已经安装好的包;
    拷贝开发环境机器上的pkgs目录到新目录如pkgs2,该目录与虚拟环境目录同一个位置,其中包含了很多之前虚拟环境安装下载的bz2包;
    对比pkgs2目录下的包和packagelist.txt中的区别,删除pkgs2中一些不需要的老版本包
    对于pkgs2建立索引,使用命令: conda index [pkgs2],该命令应该会生成索引文件如: ".index.json", "repodata.json" 和 "repodata.json.bz2”.
    在新机器上:拷贝刚才的pkgs2到新机器,请提前安装好conda环境;
    使用如下命令执行pkgs2从本地安装配置依赖包环境:
      conda install --file C:\Users\myName\Desktop\OfflineInstall\packagelist.txt --channel file://C:\Users\myName\Desktop\OfflineInstall\pkgs2
    注意:这里的install应该可以改成create命令来创建新的虚拟环境,install应该是安装到当前虚拟环境。
             channel的默认配置文件可以搜索插件.condarc文件,一般位于用户目录下。
     

如下命令可以用于搜索本地目录下是否存在特定的包:
conda search --channel D:/code/arcgis_offline_downloads/channel --override-channels
离线安装包的命令:
conda install --channel //offline/arcgis_channel/channel arcgis --offline --override-channels
参考:https://stackoverflow.com/questions/51286388/creating-an-offline-package-folder-for-anaconda
https://support.esri.com/zh-cn/technical-article/000014951


方式4: 利用virtualenv命令打包并移植
     首先打包整个虚拟环境目录并拷贝到新机器,命令如下所示:
      tar -cvf venv.tar venv/
     使用 virtualenv —relocatable 命令在新机器环境上指定虚拟环境的新位置;
     修改环境目录下的active文件中 VIRTUAL_ENV环境变量的内容,指向该环境变量真正的python位置。
------    

部署 project 这个项目
上述执行 virtualenv --relocatable 之后
1. 将开发环境下的虚拟沙盒 venv 打包压缩。
tar -cvf venv.tar venv/
2. 将项目代码拉到线上生产环境目录/app/proj1
然后把venv.tar 扔到/app/proj1目录下,解压。做解决项目依赖之前的准备工作。
3. 进入 /app/proj1/venv 目录下
重点:
修改 bin目录下的active 文件
vim /app/proj1/venv/bin/active
将变量名:VIRTUAL_ENV 由原先打包的 /data/python/project/venv 改成实际的 /app/proj1/venv
参考:https://yq.aliyun.com/articles/159599

-----------

额外参考链接:对比pip和conda方式离线环境下载安装
https://blog.veir.me/2018/03/10/install-python-and-python-moudle-offline/

 

posted @ 2019-06-11 12:28  如是耳闻  阅读(2224)  评论(0编辑  收藏  举报