1、背景
在公司的内网电脑上,使用pip install报错拒绝访问。
根据网上查到的经验,要么是以管理员方式运行cmd,要么是在pip指令后加target参数修改安装路径,但是这两种方式都无法起效果。
在cmd中输入where pip
where pip d:\用户\xxx\Desktop\pypro\pip.exe
可以看到pip指令实际上是访问可执行文件pip.exe,但是这里拒绝访问,说明我们没有访问该文件的权限(因为如果是pip不存在,报错内容应该是'pip' 不是内部或外部命令,也不是可运行的程序)。
后来经过分析,我发现应该是公司电脑上所有的pip都无法访问(猜想是pip需要用超级管理员的权限),所以只能用别的方法。
2、解决
1)python -m pip install six.whl
在cmd中,使用python -m pip install six.whl指令代替pip指令来安装离线包six,可以把包安装在python同级目录下的lib\site-package目录下。(python -m代表以module的方式执行命令,前提是后边的module确是python的一个包)。
究其原因,是因为python -m pip 是以python调用pip这个模块的方式来执行pip命令的(也就是说pip其实也是python的一个module),此时你如果用python -m pip -V,可以不仅看到pip的版本,也可以看到这个pip module的路径:
而在用where pip指令看pip的路径时,会发现是另一个(可执行文件):
用python -m pip install xxx.whl安装的包,都会被安装到这里的pip上级目录中,在这里就是D:\Python\Python3\lib\site-package中。此时你去这个目录中,是可以看到刚刚安装的包的。
2)import six
进入Python,使用import six导入刚刚装好的包,如果导入成功,说明安装完成(下文就不用再看了)。
如果导入失败,说明还要修改python的import路径。
3)修改python的import路径
进入python输入指令:
import sys sys.path
可以看到一系列的路径,这里是import的module搜索路径。
在第1步中的安装路径,如果没有在这里,也是无法正常访问安装的包的。
使用指令sys.path.append('路径')可以把路径加到sys.path中,本例中就是:
sys.path.append('D:\Python\Python3\lib\site-package')
此时再用sys.path,可以发现该路径已在其中。
此时就能用import把之前下载的离线包导入进来了。
标签:python,路径,sys,访问,install,pip,import From: https://www.cnblogs.com/ShineLeBlog/p/18051410