tox 工程打包

之前交付模型时,通常提供源码、模型等,配置环境时费心费力,因此,尝试用tox打包模型环境,便于工程的交付。

1. tox工程文件介绍

  1. /bin:提供工程的入口,由于tox打包后,源码src目录将进入lib目录下,作为python包供调用,因此,为了方便运行,需要定义入口函数,代码内容如下:
import src.spider_for_covid.daily_spider_for_covid as main

if __name__ == "__main__":
    try:
        main.main()
    except Exception as e:
        logging.exception(e)
        os._exit(-1)
  1. /etc:配置文件夹,用于存放各种config文件
  2. /logs:日志文件夹,用于存放代码运行的各种日志文件
  3. /src:存放源码
  4. /test:单元测试,基本没用到过
  5. /var:存放各种外部依赖文件,如txt,csv,model等文件,注意tox打包后src进入lib目录下,因此src中的源码文件调用var下的文件时,需要向上两层查找根节点地址,代码内容如下:
py_dir = os.path.dirname(os.path.realpath(__file__))
dir1 = os.path.dirname(py_dir)
parent_dir = os.path.dirname(dir1)
lib_dir = os.path.join(parent_dir, 'var', 'lib')
  1. requirements.txt:提供各种配置环境的要求
  2. .project,tox.ini,setup.py中需要相应的修改工程的根目录,建议直接使用pycharm打开后,refactor–>rename

2. 编译打包

各项工作准备完毕后,打开cmd,使用如下命令进行编译,编译完成后,将生成build文件夹,压缩包即为打包好工程,打开cmd,运行/bin下的入口代码即可运行工程。注意每次更新编译文件后,再次编译时需要删除原文件

rm -rf build/ AAA.egg-info/ .tox/
tox -e py36-release

3. linux文件替换

在服务器上的node08节点重新打包工程后,将lib文件替换到node01节点的指定目录下,先在xshell中进入该目录,输入一下命令即可

scp -r node08:/opt/AAA/lib ./

猜你喜欢

转载自blog.csdn.net/shlhhy/article/details/106551911