python setup.py 管理

发布项目遇到了坑……特此记录。

How to write setup.py: https://docs.python.org/2/distutils/setupscript.html

Setup.py

setup.py是python的一个项目发布管理工具。我们常常安装别人的代码也是借助setup.py。

我的项目的setup.py示例:  

from setuptools import setup, find_packages

setup(
      name="rdir",
      version="0.52",
      description="More powerful recursive dir. Support HTML pretty view in tree structure.",
      long_description="Documentation and bug report: http://www.github.com/Lhfcws/rdir <br/><br/>Sorry for the deploy bugs in the previous versions<br/><br/>If you came across ImportError or NoScriptError, please `rm /usr/local/bin/rdir*`",
      author="Lhfcws Wu",
      author_email="[email protected]",
      url="http://www.github.com/Lhfcws/rdir",
      license="MIT",
      packages=["rdir", "rdir/core", "rdir/generateHTML"],
      include_package_data=True,
      package_data={"rdir": ["rdir/generateHTML/template/*.html", "rdir/generateHTML/bin/*.js"]},
      install_requires=[‘colorama‘, ‘pyquery‘],
      keywords=["dir", "doc", "pydoc", "html"],
)

项目主要结构:

|-- rdir
|   |-- core
|   `-- generateHTML

(我上面省略了我的py文件,__init__.py肯定是有的)

name就是你的项目名了,version是版本,这两个会在打包时自动生成为你的项目名(比如 rdir-0.52)。description到license不多说。

packages很重要,它代表你有哪些package要打入发布中。Python package的概念很简单,一个目录下有__init__.py就是一个package。像我如上有三个package,于是就指定 packages=["rdir", "rdir/core", "rdir/generateHTML"] 。大家还看到我引入了一个 find_packages()函数没用,当你的每个package下的__init__.py里都import了当前package下的module时,find_packages()会自动帮你找到所有的包。

然后我项目里会有一些非py文件,比如html和js等,这时候就要靠 include_package_data 和 package_data 来指定了。package_data一般写成 {‘your_package_name‘: ["files"]}。keywords便于pypi索引。

然后include_package_data还没完,还需要一个MANIFEST.in文件:

include rdir/generateHTML/template/*.html rdir/generateHTML/bin/*.js

这个时候才会真正帮你自动copy文件到打包中。

关于MENIFEST.in请参见 https://docs.python.org/2/distutils/sourcedist.html

额外插一个常用的scripts,scripts配置会将对应的py脚本安装到你的 /usr/local/bin 目录下并在import时是优先执行的。因此你如果有了scripts,你的site-packages里的egg包就会不起作用被覆盖了。这时候就会见到恼人却又不知为何的ImportError,去掉scripts配置又发现No Script Error。其实删掉bin下的scripts就解决问题了。



最后欢迎试用 https://pypi.python.org/pypi/rdir :加强版的dir,提供多种模式(命令行、文件、html)查看一个对象递归的结构以及对应的文档。

可通过pip或easy_install安装 sudo pip install rdir。

时间: 2024-08-12 01:01:00

python setup.py 管理的相关文章

python安装Fabrix出现Command &quot;python setup.py egg_info&quot;错误

python安装Fabrix出现Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ynJnAl/pynacl/ 解决: 向上查看发现No package 'libffi' found,原因是这个libffi库未安装 所以使用:yum install libffi-devel -y 最后安装成功

解决安装ipython时Command &quot;python setup.py egg_info&quot; failed with error code 1 in /tmp

最近使用ubuntu16.04 server版安装ipython的时候一直在报错: IPython 6.0+ does not support Python 2.6, 2.7, 3.0, 3.1, or 3.2.      When using Python 2.7, please install IPython 5.x LTS Long Term Support version. python2.7 ipython Command "python setup.py egg_info"

解决Command &quot;python setup.py egg_info&quot; failed with error code 1坎坷路

机器:os x 本地想跑一下一个开源django博客应用,下了源码到里头pip install -r requirements.txt 结果屡次出错,Command "python setup.py egg_info" failed with error code 1 试了多次一直于最后一行这个错误. 我开始以为权限问题,setuptools问题 后来有转机了,我把 requirements.txt里头一个个安装,最后原是psycopg2这个安装有问题 pip我错怪你了,不过把官方源换

Command &quot;python setup.py egg_info&quot; failed with error code 1一种问题的解决方法

问题描述:无论是你在pycharm中直接使用import and install命令,还是pip的时候出现了Command "python setup.py egg_info" failed with error code 1这样的问题描述,需要考虑可能pip的这个源里面没有对应的python3.5的模块 解决方法:通常可以直接google "XXX for python3.5",或者在github中找到对应的python3.5的项目,将对应的.py文件添加到pyt

Python setup.py和MANIFEST.in文件

Setup.py文件 from setuptools import setup from codecs import open # 第三方依赖包及版本号 requires = ['beautifulsoup4>=4.3.2', 'gearman>=2.0.2', 'pymongo>=2.7.2', 'threadpool>=1.2.7', 'geoip2>=2.1.0', 'pywin32>=219'] # 包列表 packages = ['MSE', 'MSE.Dev

解决 Command &quot;python setup.py egg_info&quot; failed with error code 1 问题

参考: "pip install unroll": "python setup.py egg_info" failed with error code 1 解决 Command "python setup.py egg_info" failed with error code 1 问题 在执行 pip install -r requirements.txt 时遇到错误: Command "python setup.py egg_info

Command &quot;python setup.py egg_info&quot; failed with error code 1 in C:\Users\w5659\AppData\Local\Temp\pip-install-t7uomu4r\xa dmin\

Error msg: C:\Users\w5659>pip install xadmin Collecting xadmin Using cached https://files.pythonhosted.org/packages/1d/e9/2ac160c532d0d462142fa90aa86a0e317295e8d86fa4caf84d04f6e24c4 9/xadmin-0.6.1.tar.gz Complete output from command python setup.py e

出现问题:Command &quot;python setup.py egg_info&quot; failed with error code 1,当进行pip3 install beautifulsoup

C:\Users\wang>pip3 install beautifulsoup Collecting beautifulsoup Using cached BeautifulSoup-3.2.1.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module&g

python setup.py 安装和卸载 的正确姿势

1.install python setup.py install --record files.txt 2. uninstall 删除这些文件 cat files.txt | xargs rm -rf 原文地址:https://www.cnblogs.com/SunshineKimi/p/12291674.html