前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【填坑系列】Pycharm中这个坑“困扰”过多少人?杀手锏来了...

【填坑系列】Pycharm中这个坑“困扰”过多少人?杀手锏来了...

作者头像
double
发布2018-09-30 11:08:34
3.8K0
发布2018-09-30 11:08:34
举报
文章被收录于专栏:算法channel

一周精选

1 如何抉择是否要做机器学习?如何入门机器学习? 2 "爱(AI)与你同行系列"(1):从哪三个方面入手做好特征选择工程?

1棘手

更新pip之后,Pycharm安装package出现如下报错:

AttibuteError: module 'pip' has no attribute 'main'

或者

TypeError: main() takes 0 positional arguments but 1 was given

------以上都属于一类错误-------

尝试过很多种方法,可能一直都没有找到一个很好的解决措施。

有人甚至都绕过这个错误,采取将所有包都安装在python解释器安装目录下,不过,这种方式下,每次新建一个项目,都得重新建立一个继承于根目录下的所有包,这违背了venv的初衷

2 杀手锏

今天我们亮出解决方法,或许你还有更好的,不过,这个方法的确可以凑效,并且操作非常简单。

第一步,找出Pycharm的安装目录,默认安装于:

C:\Program Files\JetBrains\PyCharm Community Edition 2017.3.3\helpers

第二步,找到helpers文件夹下的文件 packaging_tool.py ,并做如下修改: 修改

代码语言:javascript
复制
1def do_install(pkgs):
2    try:
3        import pip
4    except ImportError:
5        error_no_pip()
6    return main(['install'] + pkgs)    

为:

代码语言:javascript
复制
 1def do_install(pkgs):
 2    try:
 3        #import pip
 4        try:
 5            from pip._internal import main
 6        except Exception:
 7            from pip import main
 8    except ImportError:
 9        error_no_pip()
10    return main(['install'] + pkgs)

修改

代码语言:javascript
复制
1def do_uninstall(pkgs):
2    try:
3        import pip
4    except ImportError:
5        error_no_pip()
6    return pip.main(['uninstall', '-y'] + pkgs)

为:

代码语言:javascript
复制
 1def do_uninstall(pkgs):
 2    try:
 3        #import pip
 4        try:
 5            from pip._internal import main
 6        except Exception:
 7            from pip import main
 8    except ImportError:
 9        error_no_pip()
10    return pip.main(['uninstall', '-y'] + pkgs)

接下来就是见证奇迹的时刻,终于可以在Pycharm里正常安装包或卸载包了。

3 接力

如果你有更好的解决方法,欢迎在下面留言。如果你在工程化实现中,解决了一些困扰你已久的问题,发送给我,分享给更多人。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1棘手
  • 2 杀手锏
  • 3 接力
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档