内网搭建指定路径虚拟环境

今天在内网搭建环境遇到一个问题,由于容器会不断重启,只有一个目录下的文件在系统设置中会一直保存数据,因此需要将环境搭建到指定目录下。

搭建目标

搭建python3.6环境,手动安装python库包,使用gpu运行脚本

遇到的问题

1. conda 搭建到指定路径后的虚拟环境,环境不会正确命名,简单的conda activate 名字,无法激活

2. 由于内网环境,初始化的python环境并不完全满足开发需求,需要手动添加包配置环境。

3. 由于python3.x 输出环境没有配置好 utf-8编码,无法正确输出到终端

4. 装包过程中使用wget工具导入包时,创建了多层目录,找不到正确包的位置

Conda 使用

在指定目录下建立conda虚拟环境,但这种指定会导致创建出来的虚拟环境没有名字

conda create –-prefix=your_path python=X.X

需要用如下语句才能激活

conda activate /app/py....(路径)

查看创建的所有虚拟环境

conda info --env

列出当前虚拟环境中所有自定义的环境变量

conda env config vars list 

Wget 使用

参数使用,path为目标路径 url为资源下载地址。注意搭建环境装包的时候,加-nd,则子目录不会被下载,后续移动文件夹很麻烦;

wget -c -r -np -P path url

-c 断点续传

-r 递归下载

-np 不下载父附录,没有加参数-np,就会同时下载path的上一级目录pub下的其它文件

-nd 不建立目录,递归下载时不创建一层一层的目录,把所有的文件下载到当前目录

-P 将下载的所有内容存放到指定目录

与上一条命令相似,多了一个 --accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。也可以指定多个扩展名,用逗号分隔。

wget -r -np -nd --accept=iso url

但不加-nd,子目录会按照网页结构下目录创建文件夹下载,此时用Linux mv指令即可

mv <源地址> <目的地址/>,即文件夹目录地址后面加上/移动文件夹的内容以及文件夹本身
mv <源地址/*> <目的地址>,移动文件夹下的所有内容到目的地址文件夹下,不会新建源地址文件夹
-f:覆盖目标文件(不提示)。
-i:询问是否覆盖目标文件。
-n:不覆盖任何已存在的目标文件。
-v:显示移动的详细过程。

 

 Linux 操作指令细节

查看环境变量

env

 以下删除到包括最后一个文件夹,envs文件夹也会被删除

rm -rf /app/envs/
rm -rf python3.6/ # python3.6文件夹也会被删

在虚拟环境中无法输出中文内容,原因是python3输出环境没有配置好 utf-8编码,需要手动配置,在linux终端运行。一开始一直以为是数据编码的问题,代码里用hashlib加密字符串生成唯一id,一直在修改加密和解码格式,最后找了很多资料才发现是python3没有配置好编码格式。这个仅单词终端有效,永久生效要改配置文件。但由于这次项目无法修改配置文件,每次容器删除都会重新初始化,因此不做修改了。

export PYTHONIOENCODING=UTF-8

解压zip

unzip xx.zip

 递归修改文件权限是大写R

chmod -R 775 /xxx/xxx

 GPU跑程序

指定GPU跑程序

CUDA_VISIBLE_DEVICES=0 python test.py

实时查看gpu使用情况 

watch -n 10 nvidia-smi

--------------------------------------------你以为就这么结束了吗?不是的!

 一切搞到这里以为部署完了,可以跑gpu了,结果跑完检测gpu发现,脚本算法根部不能用gpu跑。泪目,整整一周忙个寂寞。求助谢大佬,大佬说脚本原来的代码nltk,lemmatization 是传统nlp,spacy才有gpu加速的lemmatization。好心的大佬帮我修改了一下代码算法,换成了spacy,我重新部署了torch1.8.1版本,才正式能用gpu跑上加速。因为torch1.7版本,没有ConvBn1属性!!

【pytorch】torch1.8.1安装、查看torch版本、GPU是否可用_pytorch和gpu版本查询-CSDN博客

在安装spacy过程中,也遇到了许多bug。放一些行之有效的改bug链接吧。

gpu - Spacy + GPU 给出错误 : GPU is not accessible. 库是否安装正确? - IT工具网 (coder.work)

安装报错:Could not install packages due to an OSError: [Errno 2] No such file or directory: ‘\\METADATA‘-CSDN博客

另外在安装whl文件的时候,有个好用的方法,用下面的命令,可以一次性安装指定平台的whl, 需要自己加上--python-version 参数可以指定python版本。

pip download --platform=linux_x86_64 --only-binary=:all: lxml

 在装环境download时,直接下载一个python.exe,在命令行运行就行,不一定要pycharm软件。

注意:Spacy的版本与en_core_web_sm需对应

NLP Spacy中en_core_web_sm安装问题(附最新下载地址)_cmd如何安装 en_code_web_sm-CSDN博客
比如Spacy2.3.n需要对应安装en_core_web_sm2.3.0
安装Spacy

pip install Spacy==2.3.2   #==后面是版本号

注意到细节:

在众多教程里,下载的链接可以从后面的命令行网址获得。

whl文件名里,cuxxx才是gpu版本,cpu只是cpu版本,window会默认选择cpu版本,本地pip安装会默认选择window版本。 

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值