python setuptools python3.5打包静态资源失败

Python的setuptools安装失败怎么办_百度知道
Python的setuptools安装失败怎么办
我有更好的答案
安装$ tar -zxvf setuptools-12.0.3.tar.gz$ cd setuptools=12.0.3$ python setup.py install
为您推荐:
其他类似问题
您可能关注的内容
勃兰兑斯的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。~$ sudo apt-get install python-pip
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python-pip 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 233 个软件包未被升级。
有 8 个软件包没有被完全安装或卸载。
解压缩后会消耗掉 0 B 的额外空间。
您希望继续执行吗? [Y/n] Y
正在设置 mercurial-common (2.8.2-1ubuntu1.3) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 38, in &module&
from debpython.namespace import add_namespace_files
ImportError: No module named 'debpython.namespace'
dpkg: 处理软件包 mercurial-common (--configure)时出错:
子进程 已安装 post-installation 脚本 返回了错误号 1
dpkg: 依赖关系问题使得 mercurial 的配置工作不能继续:
mercurial 依赖于 mercurial-common (= 2.8.2-1ubuntu1.3);然而:
软件包 mercurial-common 尚未配置。
dpkg: 处理软件包 mercurial (--configure)时出错:
依赖关系问题 - 仍未被配置
正在设置 python-colorama (0.2.5-0.1ubuntu2) ...
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
Traceback (most recent call last):
File "/usr/bin/pycompile", line 38, in &module&
from debpython.namespace import add_namespace_files
ImportError: No module named 'debpython.namespace'
dpkg: 处理软件包 python-colorama (--configure)时出错:
子进程 已安装 post-installation 脚本 返回了错误号 1
正在设置 python-distlib (0.1.8-1ubuntu1) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 38, in &module&
from debpython.namespace import add_namespace_files
ImportError: No module named 'debpython.namespace'
由于已经达到 MaxReports 限制,没有写入 apport 报告。
dpkg: 处理软件包 python-distlib (--configure)时出错:
子进程 已安装 post-installation 脚本 返回了错误号 1
正在设置 python-html5lib (0.999-3~ubuntu1) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 38, in &module&
from debpython.namespace import add_namespace_files
ImportError: No module named 'debpython.namespace'
dpkg: 处理软件包 python-html5lib (--configure)时出错:
子进程 已安装 post-installation 脚本 返回了错误号 1
由于已经达到 MaxReports 限制,没有写入 apport 报告。
正在设置 python-setuptools (3.3-1ubuntu2) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 38, in &module&
from debpython.namespace import add_namespace_files
ImportError: No module named 'debpython.namespace'
由于已经达到 MaxReports 限制,没有写入 apport 报告。
由于已经达到 MaxReports 限制,没有写入 apport 报告。
dpkg: 处理软件包 python-setuptools (--configure)时出错:
子进程 已安装 post-installation 脚本 返回了错误号 1
dpkg: 依赖关系问题使得 python-pip 的配置工作不能继续:
python-pip 依赖于 python-colorama;然而:
软件包 python-colorama 尚未配置。
python-pip 依赖于 python-distlib;然而:
软件包 python-distlib 尚未配置。
python-pip 依赖于 python-html5lib;然而:
软件包 python-html5lib 尚未配置。
python-pip 依赖于 python-setuptools (&= 0.6c1);然而:
软件包 python-setuptools 尚未配置。
dpkg: 处理软件包 python-pip (--configure)时出错:
依赖关系问题 - 仍未被配置
正在设置 python-wheel (0.24.0-1~ubuntu1) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 38, in &module&
from debpython.namespace import add_namespace_files
ImportError: No module named 'debpython.namespace'
dpkg: 处理软件包 python-wheel (--configure)时出错:
子进程 已安装 post-installation 脚本 返回了错误号 1
由于已经达到 MaxReports 限制,没有写入 apport 报告。
E: Sub-process /usr/bin/dpkg returned an error code (1)
sudo dpkg -C
:~$ sudo dpkg -C
下列软件包已被解开,但是尚未配置。
要令它们运行正常,您必须借助 dpkg --configure
或者 dselect 菜单中的配置项:
python-pip
alternative Python package installer
easy-to-use, scalable distributed version control system
下列软件包只是被不全面地配置了,这也许要归咎于
第一次配置它们时出的问题。您最好能重新配置它们。
借助 dpkg --configure &软件包名& 或者用 dselect
菜单中的配置项重新配置软件包:
python-distlib
low-level components of python distutils2/packaging
mercurial-common
easy-to-use, scalable distributed version control system
python-colorama
Cross-platform colored terminal text in Python - Python 2
python-html5lib
HTML parser/tokenizer based on the WHATWG HTML5 specifica
python-setuptools
Python Distutils Enhancements
python-wheel
built-package format for Python
& 原因是,我们在将python2.7升级到python3.3时,只是将/usr/local/bin目录下修改了(使用ln -s 或者其他),然而我们的配置目录并没有修改..
使用如下的方式可以有效的解决:
sudo apt-get clean
sudo apt-get update
sudo apt-get install --reinstall python-minimal python-lockfile
阅读(...) 评论()python简明setuptools打包教程
0.什么是setuptools
setuptools是Python&distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个即可。阿弥陀佛
功能亮点:
·&利用自动查找、下载、安装、升级依赖包
·&包含包目录内的数据文件
·&自动包含包目录内的所有的包,而不用在setup.py中列举
·&自动包含包内和发布有关的所有相关文件,而不用创建一个MANIFEST.in文件
·&自动生成经过包装的脚本或Windows执行文件
·&支持Pyrex,即在可以setup.py中列出.pyx文件,而最终用户无须安装Pyrex
·&支持上传到PyPI
·&可以部署开发模式,使项目在sys.path中
·&用新命令或setup()参数扩展distutils,为多个项目发布/重用扩展
·&在项目setup()中简单声明entry&points,创建可以自动发现扩展的应用和框架
总之,setuptools就是比distutils好用的多,基本满足大型项目的安装和发布
1.安装setuptools
1)&最简单安装,假定在ubuntu下
sudo&apt-get&install&python-setuptools
2)&启动脚本安装
wget&http://peak.telecommunity.com/dist/ez_setup.py
sudo&python&ez_setup.py
2.创建一个简单的包
有了setuptools后,创建一个包基本上是无脑操作
mkdir&demo
在demo中创建一个setup.py文件,写入
from&setuptools&import&setup,&find_packages
&&&&name&=&"demo",
&&&&version&=&"0.1",
&&&&packages&=&find_packages(),
执行python&setup.py&bdist_egg即可打包一个test的包了。
|&&&`--&bdist.linux-x86_64
|--&demo.egg-info
|&&&|--&dependency_links.txt
|&&&|--&PKG-INFO
|&&&|--&SOURCES.txt
|&&&`--&top_level.txt
|&&&`--&demo-0.1-py2.7.egg
`--&setup.py
在dist中生成的是egg包
file&dist/demo-0.1-py2.7.egg
dist/demo-0.1-py2.7.egg:&Zip&archive&data,&at&least&v2.0&to&extract
看一下生成的.egg文件,是个zip包,解开看看先
upzip&-l&dist/demo-0.1-py2.7.egg
Archive:&&dist/demo-0.1-py2.7.egg
&&Length&&&&&&Date&&&&Time&&&&Name
---------&&----------&-----&&&----
&&&&&&&&1&&&22:03&&&EGG-INFO/dependency_links.txt
&&&&&&&&1&&&22:03&&&EGG-INFO/zip-safe
&&&&&&120&&&22:03&&&EGG-INFO/SOURCES.txt
&&&&&&&&1&&&22:03&&&EGG-INFO/top_level.txt
&&&&&&176&&&22:03&&&EGG-INFO/PKG-INFO
---------&&&&&&&&&&&&&&&&&&&&&-------
&&&&&&299&&&&&&&&&&&&&&&&&&&&&5&files
我们可以看到,里面是一系列自动生成的文件。现在可以介绍一下刚刚setup()中的参数了
·&name&包名
·&version&版本号
·&packages&所包含的其他包
要想发布到PyPI中,需要增加别的参数,这个可以参考中的例子了。
3.给包增加内容
上面生成的egg中没有实质的内容,显然谁也用不了,现在我们稍微调色一下,增加一点内容。
在demo中执行mkdir&demo,再创建一个目录,在这个demo目录中创建一个__init__.py的文件,表示这个目录是一个包,然后写入:
#!/usr/bin/env&python
#-*-&coding:utf-8&-*-
def&test():
&&&&print&"hello&world!"&&
if&__name__&==&'__main__':
&&&&test()
现在的主目录结构为下:
|&&&`--&__init__.py
`--&setup.py
再次执行python&setup.py&bdist_egg后,再看egg包
Archive:&&dist/demo-0.1-py2.7.egg
&&Length&&&&&&Date&&&&Time&&&&Name
---------&&----------&-----&&&----
&&&&&&&&1&&&22:23&&&EGG-INFO/dependency_links.txt
&&&&&&&&1&&&22:23&&&EGG-INFO/zip-safe
&&&&&&137&&&22:23&&&EGG-INFO/SOURCES.txt
&&&&&&&&5&&&22:23&&&EGG-INFO/top_level.txt
&&&&&&176&&&22:23&&&EGG-INFO/PKG-INFO
&&&&&&&95&&&22:21&&&demo/__init__.py
&&&&&&338&&&22:23&&&demo/__init__.pyc
---------&&&&&&&&&&&&&&&&&&&&&-------
&&&&&&753&&&&&&&&&&&&&&&&&&&&&7&files
这回包内多了demo目录,显然已经有了我们自己的东西了,安装体验一下。
python&setup.py&install
这个命令会讲我们创建的egg安装到python的dist-packages目录下,我这里的位置在
tree&/usr/local/lib/python2.7/dist-packages/demo-0.1-py2.7.egg
查看一下它的结构:
/usr/local/lib/python2.7/dist-packages/demo-0.1-py2.7.egg
|&&&|--&__init__.py
|&&&`--&__init__.pyc
`--&EGG-INFO
&&&&|--&dependency_links.txt
&&&&|--&PKG-INFO
&&&&|--&SOURCES.txt
&&&&|--&top_level.txt
&&&&`--&zip-safe
打开python终端或者ipython都行,直接导入我们的包
&&&&import&demo
&&&&demo.test()
hello&world!
好了,执行成功!
4.setuptools进阶
在上例中,在前两例中,我们基本都使用setup()的默认参数,这只能写一些简单的egg。一旦我们的project逐渐变大以后,维护起来就有点复杂了,下面是setup()的其他参数,我们可以学习一下
使用find_packages()
对于简单工程来说,手动增加packages参数很容易,刚刚我们用到了这个函数,它默认在和setup.py同一目录下搜索各个含有__init__.py的包。其实我们可以将包统一放在一个src目录中,另外,这个包内可能还有aaa.txt文件和data数据文件夹。
├──&setup.py
└──&src
&&&&└──&demo
&&&&&&&&├──&__init__.py
&&&&&&&&├──&aaa.txt
&&&&&&&&└──&data
&&&&&&&&&&&&├──&abc.dat
&&&&&&&&&&&&└──&abcd.dat
如果不加控制,则setuptools只会将__init__.py加入到egg中,想要将这些文件都添加,需要修改setup.py
from&setuptools&import&setup,&find_packages
&&&&packages&=&find_packages('src'),&&#&包含所有src中的包
&&&&package_dir&=&{'':'src'},&&&#&告诉distutils包都在src下
&&&&package_data&=&{
&&&&&&&&#&任何包中含有.txt文件,都包含它
&&&&&&&&'':&['*.txt'],
&&&&&&&&#&包含demo包data文件夹中的&*.dat文件
&&&&&&&&'demo':&['data/*.dat'],
这样,在生成的egg中就包含了所需文件了。看看:
Archive:&&dist/demo-0.0.1-py2.7.egg
&&Length&&&&&Date&&&Time&&&&Name
&--------&&&&----&&&----&&&&----
&&&&&&&88&&06-07-13&23:40&&&demo/__init__.py
&&&&&&347&&06-07-13&23:52&&&demo/__init__.pyc
&&&&&&&&0&&06-07-13&23:45&&&demo/aaa.txt
&&&&&&&&0&&06-07-13&23:46&&&demo/data/abc.dat
&&&&&&&&0&&06-07-13&23:46&&&demo/data/abcd.dat
&&&&&&&&1&&06-07-13&23:52&&&EGG-INFO/dependency_links.txt
&&&&&&178&&06-07-13&23:52&&&EGG-INFO/PKG-INFO
&&&&&&157&&06-07-13&23:52&&&EGG-INFO/SOURCES.txt
&&&&&&&&5&&06-07-13&23:52&&&EGG-INFO/top_level.txt
&&&&&&&&1&&06-07-13&23:52&&&EGG-INFO/zip-safe
&--------&&&&&&&&&&&&&&&&&&&-------
&&&&&&777&&&&&&&&&&&&&&&&&&&10&files
另外,也可以排除一些特定的包,如果在src中再增加一个tests包,可以通过exclude来排除它,
find_packages(exclude=["*.tests",&"*.tests.*",&"tests.*",&"tests"])
使用entry_points
一个字典,从entry&point组名映射道一个表示entry&point的字符串或字符串列表。Entry&points是用来支持动态发现服务和插件的,也用来支持自动生成脚本。这个还是看例子比较好理解:
&&&&entry_points&=&{
&&&&&&&&'console_scripts':&[
&&&&&&&&&&&&'foo&=&demo:test',
&&&&&&&&&&&&'bar&=&demo:test',
&&&&&&&&],
&&&&&&&&'gui_scripts':&[
&&&&&&&&&&&&'baz&=&demo:test',
修改setup.py增加以上内容以后,再次安装这个egg,可以发现在安装信息里头多了两行代码(Linux下):
Installing&foo&script&to&/usr/local/bin
Installing&bar&script&to&/usr/local/bin
查看/usr/local/bin/foo内容
#!/usr/bin/python
#&EASY-INSTALL-ENTRY-SCRIPT:&'demo==0.1','console_scripts','foo'
__requires__&=&'demo==0.1'
import&sys
from&pkg_resources&import&load_entry_point
if&__name__&==&'__main__':
&&&&sys.exit(
&&&&&&&&load_entry_point('demo==0.1',&'console_scripts',&'foo')()
这个内容其实显示的意思是,foo将执行console_scripts中定义的foo所代表的函数。执行foo,发现打出了hello&world!,和预期结果一样。
使用Eggsecutable&Scripts
从字面上来理解这个词,Eggsecutable是Eggs和executable合成词,翻译过来就是另eggs可执行。也就是说定义好一个参数以后,可以另你生成的.egg文件可以被直接执行,貌似Java的.jar也有这机制?不很清楚,下面是使用方法:
&&&&#&other&arguments&here...
&&&&entry_points&=&{
&&&&&&&&'setuptools.installation':&[
&&&&&&&&&&&&'eggsecutable&=&demo:test',
这么写意味着在执行python&*.egg时,会执行我的test()函数,在文档中说需要将.egg放到PATH路径中。
包含数据文件
在3中我们已经列举了如何包含数据文件,其实setuptools提供的不只这么一种方法,下面是另外两种
1)包含所有包内文件
这种方法中包内所有文件指的是受版本控制(CVS/SVN/GIT等)的文件,或者通过MANIFEST.in声明的
from&setuptools&import&setup,&find_packages
&&&&include_package_data&=&True
2)包含一部分,排除一部分
from&setuptools&import&setup,&find_packages
&&&&packages&=&find_packages('src'),&&
&&&&package_dir&=&{'':'src'},&&&
&&&&include_package_data&=&True,&&&&
&&&&#&排除所有&README.txt
&&&&exclude_package_data&=&{&'':&['README.txt']&},
如果没有使用版本控制的话,可以还是使用3中提到的包含方法
可扩展的框架和应用
setuptools可以帮助你将应用变成插件模式,供别的应用使用。官网举例是一个帮助博客更改输出类型的插件,一个博客可能想要输出不同类型的文章,但是总自己写输出格式化代码太繁琐,可以借助一个已经写好的应用,在编写博客程序的时候动态调用其中的代码。
通过entry_points可以定义一系列接口,供别的应用或者自己调用,例如:
&&&&entry_points&=&{'blogtool.parsers':&'.rst&=&some_module:SomeClass'}
&&&&entry_points&=&{'blogtool.parsers':&['.rst&=&some_module:a_func']}
&&&&entry_points&=&"""
&&&&&&&&[blogtool.parsers]
&&&&&&&&.rst&=&some.nested.module:SomeClass.some_classmethod&[reST]
&&&&extras_require&=&dict(reST&=&"Docutils&=0.3.5")
上面列举了三中定义方式,即我们将我们some_module中的函数,以名字为blogtool.parsers的借口共享给别的应用。
别的应用使用的方法是通过pkg_resources.require()来导入这些模块。
另外,一个名叫的库将这个方式做了封装,更加方便进行应用的扩展。
5.&以后增加
以上内容大部分来自于,需要额外学习的以后再增加
------------------------
南无阿弥陀佛
已投稿到:python下setuptools的安装详解及No module named setuptools的解决方法_python
作者:用户
前言python下的setuptools带有一个easy_install的工具,在安装python的每三方模块、工具时很有用,也很方便。安装setuptools前先安装pip,请参考:linux下pip的安装步骤及使用详解1. 下载:在它的官网可以下载到安装包:https://pypi.python.org/pypi/setuptools页面最下面的是它的安装链接,如:$...
python下的setuptools带有一个easy_install的工具,在安装python的每三方模块、工具时很有用,也很方便。
安装setuptools前先安装pip,请参考:linux下pip的安装步骤及使用详解
在它的官网可以下载到安装包:
https://pypi.python.org/pypi/setuptools
页面最下面的是它的安装链接,如:
$wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.3.tar.gz#md5=f07e4b0f4c1c9368fcd980d888b29a65
$ tar -zxvf setuptools-12.0.3.tar.gz
$ cd setuptools=12.0.3
$ python setup.py install
3. 出现错误提示:
Installed /usr/local/python2.7.3/lib/python2.7/site-packages/supervisor-4.0.0_dev-py2.7.egg
Processing dependencies for supervisor==4.0.0-dev
Searching for meld3&=1.0.0
Reading https://pypi.python.org/simple/meld3/
Download error on https://pypi.python.org/simple/meld3/: [Errno 1] _ssl.c:504: error::SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed -- Some packages may not be found!
Couldn't find index page for 'meld3' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [Errno 1] _ssl.c:504: error::SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed -- Some packages may not be found!
No local packages or download links found for meld3&=1.0.0
error: Could not find suitable distribution for Requirement.parse('meld3&=1.0.0')
上网查询了问题原因: 是curl的证书太老了需要下载最新的证书:
下载最新的证书文件
$ wget http://curl.haxx.se/ca/cacert.pem
更名为ca-bundle.crt放置到默认目录&
$ mv cacert.pem ca-bundle.crt
$ mv ca-bundle.crt /etc/pki/tls/certs
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
以上是互联网用户为您的的内容,在阿里云内部有更多的关于python下setuptools的安装详解及No module named setuptools的解决方法_python的内容,欢迎继续使用右上角搜索按钮进行搜索python、module、python安装setuptools、setuptools、no、named、以便于您获取更多的相关信息。
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@service.aliyun.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
若您要投稿,删除文章请联系邮箱:zixun-group@service.aliyun.com
工作人员会在5个工作日内回复
脚本栏目为您免费提供
相关信息,包括
的信息 ,所有
相关内容均不代表阿里云的意见!投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员5个工作日内回复。博客分类:
背景: 虚拟机centos下安装python辅助工具 setuptools报错,错误信息大概如下:
Traceback (most recent call last):
File "setup.py", line 94, in &module&
scripts = scripts,
File "/usr/local/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/local/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/opt/oracle/sor/install/setuptools-0.6c11/setuptools/command/install.py", line 76, in run
self.do_egg_install()
File "/opt/oracle/sor/install/setuptools-0.6c11/setuptools/command/install.py", line 96, in do_egg_install
self.run_command('bdist_egg')
File "/usr/local/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/opt/oracle/sor/install/setuptools-0.6c11/setuptools/command/bdist_egg.py", line 236, in run
dry_run=self.dry_run, mode=self.gen_header())
File "/opt/oracle/sor/install/setuptools-0.6c11/setuptools/command/bdist_egg.py", line 527, in make_zipfile
z = zipfile.ZipFile(zip_filename, mode, compression=compression)
File "/usr/local/lib/python2.7/zipfile.py", line 681, in __init__
"Compression requires the (missing) zlib module"
RuntimeError: Compression requires the (missing) zlib module
出错原因:
提示的很清楚,缺少 zlib模块导致安装失败
yum install zlib
# yum install zlib-devel
下载成功后,进入python2.7的目录,重新执行
#make install
此时先前执行的 软连接仍旧生效
然后进入 setuptool目录,
[root@localhost setuptools-5.2]# pythonnew setup.py install
基本这样就可以搞定
chengjianxiaoxue
浏览: 570950 次
来自: 北京
可以通过继承FileOutputFormat来简化相关代码
楼主,那hbase结合hive使用,这种架构稳定不?机器的内存 ...
最近在使用kylin的时候有点疑问,我安装这些都没问题 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 python3 setuptools 的文章

 

随机推荐