解决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 ...
随机推荐
- oracle到mysql的导数据方式(适用于任意数据源之间的互导)
http://www.wfuyu.com/Internet/19955.html 为了生产库释放部份资源, 需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具 ...
- PHP5.5下安装配置EcShop
建议用较旧的PHP版本与EcShop搭配,比如PHP5.3,新版的PHP有很多奇奇怪怪的问题... 错误描述: Deprecated: preg_replace(): The /e modifier ...
- cogs 9. 中心台站建设。。。
9. 中心台站建设 ★★☆ 输入文件:zpj.in 输出文件:zpj.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] n个城市之间有通讯网络,从这n个城 ...
- Spring MVC-环境设置(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_environment_setup.htm 说明:示例基于Spring MVC 4 ...
- HDU-4451-Dressing (2012年金华赛区J题)
Dressing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- GIS+=地理信息+容器技术(1)——容器技术概述
-------------------------------------------------------------------------------------- Blog: http ...
- 出错Can't convert 'WebElement' object to str implicitly
- hdu 1698 Just a Hook 基本线段树
使用线段树更新每段区间的奖(1,2,3),最后在统计整段区间的数和,基本线段树,果断1A啊 #include<iostream> #include<stdio.h> using ...
- Windows 平台下 Go 语言的安装和环境变量设置
1. Go 语言 SDK 安装包下载和安装 最新稳定版 1.5.3 安装包 go1.5.3.windows-amd64.msi下载地址 https://golang.org/dl/,大小约 69 MB ...
- 【Codeforces 258D】 Count Good Substrings
[题目链接] http://codeforces.com/contest/451/problem/D [算法] 合并后的字符串一定是形如"ababa","babab&qu ...