编辑:有问题的计算机是一台客户端计算机,对可以安装的软件有限制。我不确定这可能是问题的原因,还是客户的IT部门给机器一个损坏的pip版本。下面推荐的答案可能会起作用但被公司的IT部门阻止,并且需要管理员登录才能完成。我已离开那个项目,并希望避免类似的情况。
我试图安装WHL文件
尝试运行时:
import pip
my_path = <a path to the WHL file>
pip.main(['install', my_path])
我收到了属性错误:
'module' object has no attribute 'main'
我跑了帮助(点子)和
__main__
被列为包裹内容。
我在控制台中运行Python 3.4。
答案 0 :(得分:20)
try:
from pip import main as pipmain
except:
from pip._internal import main as pipmain
然后使用pipmain,因为你使用了pip.main。例如
pipmain(['install', "--upgrade", "pip"])
pipmain(['install', "-q", "package"])
答案 1 :(得分:13)
easy_install --upgrade pip
为我工作。
答案 2 :(得分:8)
我的问题与我的IDE(PyCharm)有关。旧版本的PyCharm不支持pip v10。升级PyCharm为我解决了它。
答案 3 :(得分:0)
对于最新版本的pip(pip> = 10.0.0),其他答案中描述的功能将不再起作用。我建议将subprocess与pip
一起运行,如下所示:
import subprocess
import sys
my_path = <a path to the WHL file>
command_list = [sys.executable, "-m", "pip", "install", my_path]
with subprocess.Popen(command_list, stdout=subprocess.PIPE) as proc:
print(proc.stdout.read())
此解决方案使用当前的python可执行文件将pip命令作为命令行命令运行。灵感来自here中提到的解决方案。
答案 4 :(得分:0)
从20.0.0点开始,是:
from pip._internal.cli.main import main as pipmain