自己搭建内网 PIP 源啊 |
![]() | 2 zhzy 2020-09-07 16:44:29 +08:00 via iPhone 直接把整个虚拟环境拷过去啊 |
![]() | 3 bruce0 2020-09-07 16:50:43 +08:00 虚拟机的话,直接整个镜像复制过去最简单 要不就先在外网安装完,再搞到内网, 我们就这样干过 |
![]() | 4 wandehul 2020-09-07 16:57:47 +08:00 ![]() 做个 docker image 不行吗 |
![]() | 5 676529483 2020-09-07 17:13:07 +08:00 感觉是你包管理没处理好,一般都是 requirements 记录的吧 |
![]() | 6 wangyzj 2020-09-07 17:16:21 +08:00 docker 复制 venv 环境 下载包然后传过去安装 换 go |
![]() | 7 ClutchBear 2020-09-07 17:19:24 +08:00 ![]() 用 miniconda, 可以直接安装到 /home 目录下, 安装好第三方包后, 直接 zip 压缩成文件, 然后拷贝新机子就是了. |
8 Rumplestiltskin 2020-09-07 17:24:28 +08:00 我觉得现在最好的方案就是 搞个容器 然后把容器 压缩包考过去直接 运行容器 不过这样的前提是 docker 已经装了。 不能搞容器 那就虚拟环境吧。 |
9 joApioVVx4M4X6Rf 2020-09-07 17:25:48 +08:00 同问啊,有没有什么好的解决方案,一个一个装太难受了 |
![]() | 10 WingOnSummit 2020-09-07 17:33:18 +08:00 via Android 在外网环境里,pip download 包名,把相关的依赖包一次性下好。 |
![]() | 11 scukmh 2020-09-07 17:35:48 +08:00 能 ssh 上去吗? ``` ssh yourServer -R localhost:7890:localhost:7890 export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 pip install xxx ``` |
![]() | 12 aimoji 2020-09-07 19:08:46 +08:00 via Android pip 可以下载包含所有依赖的离线包,然后拷进内网用 pip 离线安装,具体命令看下 pip 帮助吧,好久以前搞过 |
![]() | 13 aaa5838769 2020-09-07 19:46:08 +08:00 外网制作一个 docker 镜像包 |
![]() | 14 cissoid 2020-09-07 20:45:31 +08:00 ![]() pip download -r requirements.txt -d deps/ pip install -f deps/ |
![]() | 15 starsky007 2020-09-07 22:22:31 +08:00 把依赖与程序一直打包,我在部署程序到 AWS Lambda 上时就是这么操作的,完全可行。 先写好 requirements.txt ,然后使用以下命令,将依赖包安装到 target 目录下: pip install -r requirements.txt -t target 然后,将程序复制到 target 目录下,一直打包,就可以了。 |
![]() | 16 among OP @cissoid tks 正在 ing pip3 download -d mypip --platform linux_x86_64 --python-version 36 --implementation cp --abi none -r requirements.txt |
17 xchaoinfo 2020-09-07 23:10:18 +08:00 via Android pip install -f deps/ --no_index 这个需要多加一个参数 |
![]() | 18 ClericPy 2020-09-08 00:00:25 +08:00 目前我是通过 shiv 打包做的部署, 主要就是像 jar 包一样把依赖环境打包成一起. 官方文档建议的是打包成 app, 不过我更喜欢当 venv 来用 目前 hadoop 任务已经全是这玩意了, 不过得改环境变量把缓存文件放到当前目录, 其他没什么坑, 性能超过 pex, 稳定性也足够好 |
![]() | 19 cz5424 2020-09-08 00:35:02 +08:00 via iPhone 最简单就拷贝 venv,复杂点就制作 docker 镜像 |
20 arischow 2020-09-08 01:19:01 +08:00 能访问外网的机器: pip install wheel && pip wheel -r requirements.txt --wheel-dir=/svc/wheels 即,安装 wheel 并按照 requirements.txt 编译 whl 内网的机器: pip install --no-index --find-links=/svc/wheels -r requirements.txt 即,使用本地 /svc/wheels 下的 whl 安装 requirements.txt ,并禁止其在 pypi index 下载安装。 如果是 Docker 可以用 multi-stage build: ```docker # build wheels FROM python:3.7.9-buster as builder ENV PYTHOnFAULTHANDLER=1 \ PYTHOnUNBUFFERED=1 \ PYTHOnHASHSEED=random \ # pip: PIP_NO_CACHE_DIR=yes \ PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DEFAULT_TIMEOUT=100 RUN mkdir /svc WORKDIR /svc ADD ./requirements.txt . RUN pip install wheel && pip wheel -r requirements.txt --wheel-dir=/svc/wheels # clean slate FROM python:3.7.9-slim-buster as production # non-root user RUN addgroup --system --gid 101 devops && \ adduser --system --disabled-login --ingroup devops --gecos "devops user" --shell /bin/false --uid 101 devops RUN mkdir -p /src/languages && \ chown -R devops:devops /src # python packages COPY --from=builder /svc /svc WORKDIR /svc RUN pip install --no-index --find-links=/svc/wheels -r requirements.txt && \ rm -rf /svc ``` |
21 arischow 2020-09-08 01:21:11 +08:00 |
22 gtlions 2020-09-08 08:20:09 +08:00 via iPhone 这是一个转 Go 的原因 |
![]() | 23 devtk 2020-09-08 09:05:20 +08:00 打包成 docker 镜像 ,然后到离线环境部署 |
![]() | 24 wuwukai007 2020-09-08 19:25:39 +08:00 via Android 内网 docker 也是很烦的,建议你建议公司搭个镜箱源 |