做项目时遇到一个问题就是,项目需要部署到甲方爸爸的服务器上,但项目中又有依赖包是公司内部仓库的,外网(包括甲方爸爸)无法访问,解决办法只有两种:
1.将所有依赖包打成whl格式(一个tensorflow就400Mb+,更多的不敢想),然后copy到甲方爸爸的服务器上离线安装(这样可以,且大多数情况下都适用,但甲方爸爸在国外,想连到他们的服务器中间还需要一个跳板机,scp不仅慢还容易connection closed)
2.仅将公司内部仓库的依赖包打成whl格式,一般只有几十Mb,scp起来不存在任何问题
pip3 wheel --wheel-dir=mywheels /package
(注:/package中一定要有setup.py才能打包)
接着,只要在本机中生成requirements.txt
pip3 freeze > requirements.txt
此时requirements中是所有依赖的包,一同scp到甲方爸爸的服务器上,指定wheel的获取路径
pip3 install --find-links=./mywheels -r requirements.txt
pip会自动获取mywheel文件夹下的whl包,如果该文件夹下没有自动会从线上下载(顺便说一句新加坡的网好快啊,配置一下人家的服务器,无论apt-get还是pip install,简直飞起!!)