解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错
import
sys
import
traceback
import
getopt
import
os
ERROR_WRONG_USAGE
=
1
ERROR_NO_PIP
=
2
ERROR_NO_SETUPTOOLS
=
3
ERROR_EXCEPTION
=
4
os.putenv(
"PIP_REQUIRE_VIRTUALENV"
,
"false"
)
def
exit(retcode):
major, minor, micro, release, serial
=
sys.version_info
version
=
major
*
10
+
minor
if
version <
25
:
import
os
os._exit(retcode)
else
:
sys.exit(retcode)
def
usage():
sys.stderr.write(
'Usage: packaging_tool.py <list|install|uninstall|pyvenv>\n'
)
sys.stderr.flush()
exit(ERROR_WRONG_USAGE)
def
error(message, retcode):
sys.stderr.write(
'Error: %s\n'
%
message)
sys.stderr.flush()
exit(retcode)
def
error_no_pip():
type
, value, tb
=
sys.exc_info()
if
tb
is
not
None
and
tb.tb_next
is
None
:
error(
"Python packaging tool 'pip' not found"
, ERROR_NO_PIP)
else
:
error(traceback.format_exc(), ERROR_EXCEPTION)
def
do_list():
try
:
import
pkg_resources
except
ImportError:
error(
"Python packaging tool 'setuptools' not found"
, ERROR_NO_SETUPTOOLS)
for
pkg
in
pkg_resources.working_set:
try
:
requirements
=
pkg.requires()
except
Exception:
requirements
=
[]
requires
=
':'
.join([
str
(x)
for
x
in
requirements])
sys.stdout.write(
'\t'
.join([pkg.project_name, pkg.version, pkg.location, requires])
+
chr
(
10
))
sys.stdout.flush()
def
do_install(pkgs):
return
pip_main([
'install'
]
+
pkgs)
def
do_uninstall(pkgs):
return
pip_main([
'uninstall'
,
'-y'
]
+
pkgs)
def
pip_main(args):
try
:
import
pip
except
ImportError:
error_no_pip()
try
:
func
=
pip.main
except
AttributeError:
from
pip._internal
import
main as func
func(args)
def
do_pyvenv(path, system_site_packages):
try
:
import
venv
except
ImportError:
error(
"Standard Python 'venv' module not found"
, ERROR_EXCEPTION)
# In Python >= 3.4 venv.create() has a new parameter with_pip=False
# that allows to automatically install setuptools and pip with the module
# ensurepip. Unfortunately, we cannot use this parameter and have to
# bootstrap these packages ourselves, since some distributions of CPython
# on Ubuntu don't include ensurepip.
venv.create(path, system_site_packages
=
system_site_packages)
def
do_untar(name):
import
tempfile
directory_name
=
tempfile.mkdtemp(
"pycharm-management"
)
import
tarfile
tar
=
tarfile.
open
(name)
for
item
in
tar:
tar.extract(item, directory_name)
sys.stdout.write(directory_name
+
chr
(
10
))
sys.stdout.flush()
return
0
def
mkdtemp_ifneeded():
try
:
ind
=
sys.argv.index(
'--build-dir'
)
if
not
os.path.exists(sys.argv[ind
+
1
]):
import
tempfile
sys.argv[ind
+
1
]
=
tempfile.mkdtemp(
'pycharm-packaging'
)
return
sys.argv[ind
+
1
]
except
:
pass
return
None
def
main():
try
:
# As a workaround for #885 in setuptools, don't expose other helpers
# in sys.path so as not no confuse it with possible combination of
# namespace/ordinary packages
sys.path.remove(os.path.dirname(__file__))
except
ValueError:
pass
retcode
=
0
try
:
if
len
(sys.argv) <
2
:
usage()
cmd
=
sys.argv[
1
]
if
cmd
=
=
'list'
:
if
len
(sys.argv) !
=
2
:
usage()
do_list()
elif
cmd
=
=
'install'
:
if
len
(sys.argv) <
2
:
usage()
rmdir
=
mkdtemp_ifneeded()
pkgs
=
sys.argv[
2
:]
retcode
=
do_install(pkgs)
if
rmdir
is
not
None
:
import
shutil
shutil.rmtree(rmdir)
elif
cmd
=
=
'untar'
:
if
len
(sys.argv) <
2
:
usage()
name
=
sys.argv[
2
]
retcode
=
do_untar(name)
elif
cmd
=
=
'uninstall'
:
if
len
(sys.argv) <
2
:
usage()
pkgs
=
sys.argv[
2
:]
retcode
=
do_uninstall(pkgs)
elif
cmd
=
=
'pyvenv'
:
opts, args
=
getopt.getopt(sys.argv[
2
:], '
', ['
system
-
site
-
packages'])
if
len
(args) !
=
1
:
usage()
path
=
args[
0
]
system_site_packages
=
False
for
opt, arg
in
opts:
if
opt
=
=
'--system-site-packages'
:
system_site_packages
=
True
do_pyvenv(path, system_site_packages)
else
:
usage()
except
Exception:
traceback.print_exc()
exit(ERROR_EXCEPTION)
exit(retcode)
if
__name__
=
=
'__main__'
:
main()
解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错的更多相关文章
- 安装pandas报错(AttributeError: 'module' object has no attribute 'main')
在pycharm中安装pandas出现报错:AttributeError: 'module' object has no attribute 'main', 刚开始以为是pip的版本太旧了,于是乎将其 ...
- AttributeError: 'module' object has no attribute 'main'
本机环境:ubuntu16.04, ros-kinetic $ roscore 报错 Traceback (most recent call last): File , in <module& ...
- 【Python】【亲测好用】安装第三方包报错:AttributeError:'module' object has no attribute 'main'
安装/卸载第三包可能出现如下问题及相应解决办法: 在pycharm编辑中,使用anconda2更新.卸载第三方包时,出现如下错误: AttributeError:'module' object has ...
- window7下安装第三方包报错及解决
window7 64位下安装第三方包,,比如安装yaml的exe执行文件,会 报错及解决:python version 2.7(3.4) required,which was not found in ...
- 解决 mac 10.14.4 无法 sublime text 3207 安装 Package Control,以及安装第三方包报错 `Package Control There are no packages available for installation`
下载最新的 sublime text 3207,无法安装 Package Control. 根据官方提示,手动安装 Package Control. 手动安装 Package Control 后,无法 ...
- pycharm 安装第三方库报错:AttributeError: 'module' object has no attribute 'main'
pip升级到 10.0.1 之后 老版的pycharm 使用pip安装第三方库的时候会报错,报错如上图所示: 其主要原因是 新版的 pip 更改了 部分api 将其中 pip.main() 改为 pi ...
- attributeError:'module' object has no attribute ** 解决办法
写了一个小脚本,执行的时候报错: Traceback (most recent call last): File "F:/test/qrcode.py", line 109, in ...
- 【pycharm】pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法
pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法 解决方法: 在pycharm的安装目 ...
- 解决:pipenv shell报错:AttributeError: 'module' object has no attribute 'run'
利用pipenv shell切换到虚拟环境时,显示报错:AttributeError: 'module' object has no attribute 'run' 可以看到是d:\program\p ...
随机推荐
- 洛谷 P2634 BZOJ 2152 【模板】点分治(聪聪可可)
题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已 ...
- 哈哈,找到一种方式来简单模拟EXTJS中与服务器的AJAX交互啦。
一直在测试客户端的EXTJS,但遇到服务器端就麻烦了,要建库,要写JSON,要有HTTP返回值. 今天测试了一个简单的方法,经过测试是OK了. 那,就是Python的SimpleHTTPServer模 ...
- 关于Hanoi算法
java经典算法——河内算法(Hanoi) 有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出 ...
- 程序错误通常有2种,一种是运行时错误,这种错误ide会抛出异常,我们可以根据异常寻找问题.
1.程序错误通常有2种,一种是运行时错误,这种错误ide会抛出异常,我们可以根据异常寻找问题. 2.可以根据异常寻找问题. 3.可以根据异常寻找问题
- Spring框架自学之路——简易入门
目录 目录 介绍 Spring中的IoC操作 IoC入门案例 Spring的bean管理配置文件 Bean实例化的方式 Bean标签的常用属性 属性注入 使用有参构造函数注入属性 使用set方法注入属 ...
- [React] Capture values using the lifecycle hook getSnapshotBeforeUpdate in React 16.3
getSnapshotBeforeUpdate is a lifecycle hook that was introduced with React 16.3. It is invoked right ...
- Google面试题-高楼扔鸡蛋问题
本文由 @lonelyrains 出品.转载请注明出处. 文章链接: http://blog.csdn.net/lonelyrains/article/details/46428569 高楼扔鸡蛋问 ...
- 项目结构、包、编译为exe!
一个java源文件里至多有一个public类,该类的名称必须与源文件名称称同样.也能够没有public类.文件名称与随意一个类名一致就可以. 包 类似于cpp的namespace,是对类的再封装,防止 ...
- gephi——怎样上传节点表格而且为节点设定颜色类型
使用gephi过程中出现两个问题: 一.节点编号不安给定的属性(Nodes)编号,而是莫名其妙地从1w+開始 解决:数据列名中需包括 id.则默觉得节点编号 二.怎样在上传的数据中指定节点颜色 须要一 ...
- iOS 块的简单理解
占位 自己主动转载器那小子,你转完了没? 转完了,我开写了哈! Block,就两个事儿,一个是引用,一个是实例,除了实现处.其他地方都是引用. 以此思路.再继续看看引用和实现的定义方式吧. 參考官方文 ...