今天正式部署puls版本的dejs项目了。里面需借助python服务完成部分功能。安装模块的的时候报了下面的错误。
/data/anaconda3/bin/pip install requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# “/data/anaconda3/bin/pip” 是我pip安装的目录信息
# “-i https://mirrors.aliyun.com/pypi/simple/” 指定使用aliyun的镜像源,这样安装速度快一些。
结果报了下面的错误:
ERROR: Could not find a version that satisfies the requirement requirements.txt (from versions: none)
ERROR: No matching distribution found for requirements.txt
其原因是本地开发项目的模块版本无法在镜像源中找到。这个时候我第一个想法是更换镜像源,比如清华镜像源安装https://pypi.tuna.tsinghua.edu.cn/simple。不过你会发现同样无法解决。
想了一下,版本真的对我这么重要么?其实无所谓的事情。那么我就采用了下面的方法。
cat requirements.txt |awk -F '=' '{print $1}' |xargs /data/anaconda3/bin/pip install
#这个是大部分人可用的语句
cat requirements.txt |awk -F '=' '{print $1}' |xargs pip3 install
#或者这种方式
cat requirements.txt |awk -F '=' '{print $1}' |xargs python -m pip install
首先将安装模块信息使用管道传递到awk中,awk 按照“=” 进行分隔,将版本信息丢弃,仅打印出模块名称。 这个时候就可以使用pip进行安装了。
结果很显然解决了。我觉得pip命令中应该有安装时,忽略版本信息的参数。不过懒的查找了。
顺别说下,项目中的requirements.txt如何生成的。推荐直接使用 pipreqs。具体方法如下:
pip install pipreqs && pipreqs .
#在项目根目录下,使用pip 按照 pipreqs模块
#安装成功后使用pipreqs在当前目录生成requirements.txt