python模块打包方法
http://www.jb51.net/article/92789.htm
一 首先将模块的目录结构整理如下:
VASPy/
├── LICENSE
├── MANIFEST
├── MANIFEST.in
├── README.rst
├── requirements.txt
├── scripts
│ ├── change_incar_parameters.py
│ ├── create_inputs.py
│ └── ...
├── setup.cfg
├── setup.py
├── tests
│ ├── incar_test.py
│ ├── __init__.py
│ ├── oszicar_test.py
│ ├── outcar_test.py
│ ├── testdata
│ │ ├── CONTCAR
│ │ ├── DOS_SUM
│ │ ├── ELFCAR
│ │ └── ...
│ └── ...
└── vaspy
├── __init__.py
├── iter.py
├── matstudio.py
└── ...
注意上面的MANIFEST.in,requirements.txt, setup.py vaspy以及里面的__init__.py这些是必须
注意vaspy和里面的vaspy的一致。
tests是子包,scripys也是 子包,matstudio.py可以是模块入口文件
MANIFEST.in
此文件在打包的时候告诉setuptools还需要额外打包那些文件,例如我VASPy中的单元测试的测试数据文件我就使用这个文件将其包含进来。当然README,LICENSE这些也可以通过它来一起打包进来。
下面是我自己的MANIFEST.in的内容:
include README.rst
include requirements.txt
include LICENSE
recursive-include scripts *
recursive-include tests *
也就是把一些 必须 的文件还有子包引入进去
vaspy/
此文件夹就是vaspy源代码所在的包。个人理解是一个和模块名同名的文件夹
setup()的参数
name
versions = "vaspy"
是整个项目的名字,打包后会使用此名字和版本号。
description
是一个简短的对项目的描述,一般一句话就好,会显示在pypi上名字下端。
long_description
是一个长的描述,相当于对项目的一个简洁,如果此字符串是rst格式的,PyPI会自动渲染成HTML显示。这里可以直接读取README.rst中的内容。
url
包的连接,通常为GitHub上的链接或者readthedocs的链接。
packages
需要包含的子包列表,setuptools提供了find_packages()帮助我们在根路径下寻找包,这个函数distutil是没有的。
setup_requires
这个参数定义了VASPy安装和顺利运行所需要的其他依赖项(最基本的),使用pip安装的时候会对这些依赖项进行安装。
关于这个参数与requirements.txt的区别可以参考:install_requires vs Requirements files
classifier
这个参数提供了一系列的分类,在PyPI上会将其放入不同的目录中讲项目进行归类。
#!/usr/bin/env python from setuptools import setup, find_packages maintainer = 'Shao-Zheng-Jiang'
maintainer_email = 'shaozhengjiang@gmail.com'
author = maintainer
author_email = maintainer_email
description = "A pure Python library designed to make it easy and quick to manipulate VASP files" long_description = """
=====
test1
=====
.. image:: https://travis-ci.org/PytLab/test1.svg?branch=master
:target: https://travis-ci.org/PytLab/test1
:alt: Build Status
.. image:: https://landscape.io/github/PytLab/test1/master/landscape.svg?style=flat
:target: https://landscape.io/github/PytLab/test1/master
:alt: Code Health
.. image:: https://codecov.io/gh/PytLab/test1/branch/master/graph/badge.svg
:target: https://codecov.io/gh/PytLab/test1
.. image:: https://img.shields.io/badge/python-3.5, 2.7-green.svg
:target: https://www.python.org/downloads/release/python-351/
:alt: platform
.. image:: https://img.shields.io/badge/pypi-v0.8.8-blue.svg
:target: https://pypi.python.org/pypi/test1/
:alt: versions
Introduction
------------
test1 is a pure Python library designed to make it easy and quick to manipulate VASP files.
You can use test1 to manipulate VASP files in command lins or write your own python scripts to process VASP files and visualize VASP data.
In `/scripts <https://github.com/PytLab/test1/tree/master/scripts>`_ , there are some scripts written by me for daily use.
Installation
------------
. Via pip(recommend)::
pip install test1
. Via easy_install::
easy_install test1
. From source::
python setup.py install
If you want to use **mayavi** to visualize VASP data, it is recommened to install `Canopy environment <https://store.enthought.com/downloads/#default>`_ on your device instead of installing it manually.
After installing canopy, you can set corresponding aliases, for example:
.. code-block:: shell
alias canopy='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/python'
alias canopy-pip='/Users/zjshao/Library/Enthought/Canopy/edm/envs/User/bin/pip'
alias canopy-ipython='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/ipython'
alias canopy-jupyter='/Users/<yourname>/Library/Enthought/Canopy/edm/envs/User/bin/jupyter'
Then you can install test1 to canopy::
canopy-pip install test1
""" install_requires = [
'configparser',
'selenium',
] # Get long description.
#with open("README.rst") as f:
# lines = f.readlines()
#
#long_description = ""
#for line in lines:
# if "Installation" in line:
# break
# else:
# long_description += line name = 'test1'
packages = [
'test1',
]
platforms = ['linux'] # classifiers = [
# 'Development Status :: 3 - Alpha',
# 'Topic :: Text Processing',
# 'License :: OSI Approved :: MIT License',
# 'Programming Language :: Python :: 2',
# 'Programming Language :: Python :: 2.7',
# 'Programming Language :: Python :: 3',
# 'Programming Language :: Python :: 3.5',
# ] setup(author=author,
author_email=author_email,
description=description,
license=license,
long_description=long_description,
install_requires=install_requires,
maintainer=maintainer,
name=name,
packages=find_packages(),
platforms=platforms,
# test_suite="tests",
)
上面 是我自己修改后的,有一些不是必须
模块打包好后,安装方法
python setup.py install
python模块打包方法的更多相关文章
- 详解Python模块导入方法
python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...
- Python模块安装方法
安装Python模块 电子邮件 distutils-sig @ python .组织 作为一个受欢迎的开源开发项目,Python具有活跃的贡献者和用户支持社区,并且根据开放源代码许可条款,其软件可供其 ...
- c#项目调用Python模块的方法
将Python模块用pyinstaller打包成exe程序 下载安装UPX((http://upx.sourceforge.net/)) ,并把路径加到环境变量中. UPX是开源的加壳和压缩exe的程 ...
- 两种动态载入修改后的python模块的方法
方案一:循环导入/删除模块 a.py import sys, time while True: from b import test test() del sys.modules(b) time.sl ...
- 使用 from import方法导入Python模块
比如我们导入一个数学计算的模块 math: >>> import math>>> print math<module 'math' (built-in)> ...
- Python模块常用的几种安装方式
Python模块安装方法 一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:pytho ...
- ipython和pip,模块安装方法
先下载 pip-.tar.gz 解压文件 cmd进入这个加压后的文件 执行 python setup.py install 然后配置环境变量 把 python 下的 Scripts 文件目录添加到 P ...
- python模块的打包
python模块的打包方法: http://blog.csdn.net/five3/article/details/7847551
- python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctype ...
随机推荐
- SQLAlchemy技术文档(中文版)(中)
10.建立联系(外键) 是时候考虑怎样映射和查询一个和Users表关联的第二张表了.假设我们系统的用户可以存储任意数量的email地址.我们需要定义一个新表Address与User相关联. from ...
- [luogu4242] 树上的毒瘤
题目描述 这棵树上有n个节点,由n−1条树枝相连.初始时树上都挂了一个毒瘤,颜色为ci.接下来Salamander将会进行q个操作. Salamander有时会修改树上某个点到另外一个点的简单路径上所 ...
- 用ServletContext做一个简单的聊天室
这里主要是ServletContext的一个特性:ServletContext是一个公共的空间,可以被所有的客户访问.由此可见ServletContext比cookie和session的作用范围要大[ ...
- windows 系统下git 的安装
在linux系统下,可以直接在命令窗口安装和使用git.但是,在windows系统下,想要达到同样的效果,可以安装git,使用git bash到达效果.具体安装步骤如下: 第一步:官网上下载git 网 ...
- Java 文件hashCode
public static void main(String args[]) { try { System.out.println(getMD5Checksum("RationalRoseE ...
- jquery判断ie与使用ie来判断ie,推荐ie样式块
用jquery来判断浏览器类型,如果只是仅仅为了判断浏览器的类型而使用该方法,那么不建议使用,只是在你已经使用了jquery才建议使用,因为没必要因为这么小的一个功能就加载那么大的类库吧 Jquery ...
- 转载~基于比较的排序算法的最优下界为什么是O(nlogn)
基于比较的排序算法的最优下界为什么是O(nlogn) 发表于2013/12/21 16:15:50 1024人阅读 分类: Algorithm 1.决策二叉树 回答这个问题之前我们先来玩一个猜数字的 ...
- haskell处理JSON(aeson)
aeson是haskell的一个库,其实我也不太懂,不过大概是这样的: 定义一个类型 如 data Person = Person { firstName :: String , lastNa ...
- OpenCV实践之路——人脸检测(C++/Python) 【转】
转自:http://blog.csdn.net/xingchenbingbuyu/article/details/51105159 版权声明:本文为博主原创文章,转载请联系作者取得授权. 本文由@星沉 ...
- POCO库中文编程参考指南(5)Poco::Net::SocketAddress
1 枚举 最大地址长度,这个与Poco::Net::IPAddress中的定义可以类比,不过这里指的是`struct sockaddr_in6 enum { MAX_ADDRESS_LENGTH = ...