@Pycharm使用图形化界面安装时出现 ‘module’ object is not callable的解决方法
使用Pycharm安装包遇到’module’ object is not callable
最近使用pycharm写Django,原来一直是python2.7的忠实使用者,当时无奈2.X版本以后不再维护,现在所有项目都要转到3.X版本。在自动化安装Django过程中一直出现’module’ object is not callable的报错,并提示PIP版本的问题,显示是packaging_tool.py文件中do_install方法报错
报错源码如下:
def do_install(pkgs):
try:
try:
from pip._internal import main
except Exception:
from pip import main
except ImportError:
error_no_pip()
return main(['install'] + pkgs)
我们在实际使用pip的时候一般不会关注其内部结构方法,主要使用的就是几条命令,而pip作为python最为强大的包管理器,其目前已经更新到19.3.1版本,其方法已经和原来产生很大差异,可以替换pip版本为老版本,解决问题。但治标不治本,故更新pycharm版本为新版本,发现没有报错信息,再看新版本pycharm源码:
def do_install(pkgs):
run_pip(['install'] + pkgs)
def do_uninstall(pkgs):
run_pip(['uninstall', '-y'] + pkgs)
def run_pip(args):
import runpy
sys.argv[1:] = args
# pip.__main__ has been around since 2010 but support for executing it automatically
# was added in runpy.run_module only in Python 2.7/3.1
module_name = 'pip.__main__' if sys.version_info < (2, 7) else 'pip'
try:
runpy.run_module(module_name, run_name='__main__', alter_sys=True)
except ImportError:
error_no_pip()
从中可以看出pip执行的方法产生了很大变动。
结论:在技术领域,跟新创新真的很重要!思想一定不能逐步自封,跟住主流,引导潮流才是王道!