当前位置:首页 >> 脚本专栏

Python依赖包迁移到断网环境操作

场景:由于自己的电脑A性能不足,需要转移到一台高性能的主机B上运行python程序,但是该主机不能连接互联网。

问题:在个人电脑A上建立了一个虚拟环境,安装了依赖包并且调试程序使其能运行。但是将虚拟环境所在文件夹复制粘贴到主机B上时,无法运行。

环境:Windows、Python3.6

解决办法:

1.主机A(虚拟环境激活)pip freeze >requirements.txt 将虚拟环境中安装的Python依赖包记录到文件requirements.txt中。

2.主机A(虚拟环境激活)pip download -r requirements.txt -d packages 将安装的Python依赖包保存到packages目录下。

3.主机B 在断网的主机上安装好python3.6

4.主机B 在项目下建立虚拟环境,并激活。同时将whls文件夹和requirements.txt复制粘贴到项目目录下。

5.主机B(虚拟环境激活)pip install --no-index --find-links=packages -r requirements.txt 在主机B的虚拟环境中安装requirements.txt里的依赖包。

补充知识:python项目导出所需要的依赖库或者整个环境的库

使用pip freeze

pip freeze > requirements.txt

这个命令安装了环境中的所有第三方包,一般在虚拟环境中可以这样使用比较方便。

安装命令

pip install -r requirements.txt

使用 pipreqs

如果想要在正常的环境下整理出一个项目所使用的第三方库可以使用pipreqs

第一步安装

pip install pipreqs

使用也很简单 pipreqs 路径名

此处直接进到项目根目录,所以是./

pipreqs ./

这样直接可以生成项目中所以用的第三方库。

如果报错

File "c:\users\devtao\appdata\local\programs\python\python36-32\lib\site-packages\pipreqs\pipreqs.py", line 341, in init
extra_ignore_dirs=extra_ignore_dirs)
File "c:\users\devtao\appdata\local\programs\python\python36-32\lib\site-packages\pipreqs\pipreqs.py", line 75, in get_all_imports
contents = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 186: illegal multibyte sequence

可以在安装的pipreqs.py中修改 74行左右的encoding=‘utf-8'

以上这篇Python依赖包迁移到断网环境操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。