场景:由于自己的电脑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依赖包迁移到断网环境操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/190616/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)