解决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 ...
随机推荐
- QT5的模块介绍【摘】
Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分.前者是基础模块,在所有平台上都可用:后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平 ...
- 【codeforces 789D】Weird journey
[题目链接]:http://codeforces.com/problemset/problem/789/D [题意] 给你n个点,m条边; 可能会有自环 问你有没有经过某两条边各一次,然后剩余m-2条 ...
- Balanced Number
Balanced Number Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- BA-WG-冷源
冷源群控系统最好由冷源厂家来做的理由 1.冷机厂家对空调的参数十分的清楚,明确的知道冷机的负荷曲线,可以优化冷机加减载的最合理时间达到最佳的节能效果 2.独立的CSM硬件模块,内置不同冷机的型号特性, ...
- Eclipse快捷操作
Eclipse快捷操作 快捷操作,包含了一些鼠标的操作: 学习了:http://www.cnblogs.com/iamfy/archive/2012/07/11/2586869.html 自己体会了一 ...
- solr实战-(一)
实现用户数据索引及查询 1. 启动solr solr start 2. 创建collection solr create -c user 3. schema中加入field ...
- 使用 AFNetworking的时候,怎样管理 session ID
问: As the title implies, I am using AFNetworking in an iOS project in which the application talks to ...
- HDU 4607 Park visit (求树的直径)
解题思路: 通过两次DFS求树的直径,第一次以随意点作为起点,找到距离该点距离最远的点,则能够证明这个点一定在树的直径上,然后以该点为起点进行DFS得到的最长路就是树的直径. 最后的询问,假设K &l ...
- ORA-09925: Unable to create audit trail file汇总
今天一兄弟的库报ORA-09925: Unable to create audit trail file,当时查 df -h有可用空间,文件夹的权限也正确,未df -i查看Inodes使用情况,审计文 ...
- Redis各种数据类型的使用场景
Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据 ...