问题的发现
最近用了Aidlux,上面的软件包兼容性挺好的。但是有一个问题:Aidlux的终端默认是root用户,所以我新建了一个普通用户,避免root用户带来的特权问题和一大堆警告。这又带来了另一个问题:pip安装软件包的时候会优先下载预编译的wheel包,但是有的包没有预编译,直接以源代码的形式发布(以.tar.gz结尾),这时pip就会自动下载进行编译。这个过程在aidlux的普通用户上是有权限问题滴,所以这时候就需要手动下载压缩包以root权限进行编译:
python -m pip download xxx
tar xzf xxx.tar.gz
cd xxx
sudo python setup.py bdist_wheel
python -m pip install dist/xxx.whl
前面几个命令都没啥问题,到了最后一个的时候死活装不上:
xxx is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel.
好吧,我们试一下它给的提示。
然后,pip把依赖全部重装了一遍...装个torch就得2分钟,装个numpy也要个一分钟,这一来二去的时间可就长了。最后重新看了一遍pip install --help,可算是找到解决方案了:
在最后一步的时候加上 --force-reinstall 和 --no-deps 参数就可以了。自此,问题总算解决了。