python模块安装方式和自定义模块安装

最近在捣鼓Windows一些以前忽略,但买了阿里云后,又记起来的东西,然后有些东西确实想了很久,也挺有意义的,所以在这里分享一下。

第一种安装方式

利用pip去 https://pypi.org/ 官网拉取第三方模块,这个网站是pip能拉取到的所有第三方库的地方,当我们使用如下命令的时候,默认就是去该网址查找相应的模块,如果没有,则会安装失败。

>>>pip install PackageName / pip.exe install PackageName

或者是pip.exe,这两条命令是一致的。与之配套的一些常用命令还有:

>>>pip install -U PackageName		# 更新模块
>>>pip uninstall PackageName		# 卸载模块
>>>pip search PackageName		# 搜寻模块
>>>pip help				# 显示所有命令	
...

第二种安装方式

使用easy_install安装,和上面的pip命令基本一致,根据官方的回答是easy_install比pip更古老,pip是在easy_install的基本上做了很多的优化,但对于模块来讲,越古老可能支持的第三方就越多,所以当pip无法安装的时候,可以考虑一下easy_install,说不定就可以安装。

>>>easy_install PackageName

但这里需要注意的是,如果我们要查看当前的easy_install的版本与安装路径,不像pip,直接输入就可以,easy_install会报错:

>>>easy_install

error: No urls, filenames, or requirements specified (see --help)

所以这里的命令是这样的:

>>>easy_install virtualenv

Searching for virtualenv
Best match: virtualenv 16.1.0
Adding virtualenv 16.1.0 to easy-install.pth file
Installing virtualenv-script.py script to E:\anaconda\Scripts
Installing virtualenv.exe script to E:\anaconda\Scripts

Using e:\anaconda\lib\site-packages
Processing dependencies for virtualenv
Finished processing dependencies for virtualenv

这样就能查询出本地的easy_install环境了,另外easy_install的命令和pip基本都是一致的,那么这即是第二种方式的拉取,下面就介绍怎么自定义安装。

第三种安装方式

setup.py的安装方式,进入当前setup.py的目录下,输入如下命令:

>>>python setup.py install

不知道读者们有没有发现,当我们在github上下载别人的源码时,有时候在最外层会有一个setup.py的文件,我当时是很疑惑的,后来看了相关的解释才知道这个是别人自定义的一个模块安装文件,我们只需要通过pip安装就可以了。

那么我就照着一些例子,写了一个模板出来,以后应该可以用得到。

#coding:utf-8

# pip <= 9.0
try:
    from pip.req import parse_requirements
# pip > 9.0-
except:
    from pip._internal.req import parse_requirements
"""
	pip的版本分水岭是在9,如果要自定义安装,9以上的是后者,以下是前者,所以做了一个Try,为了适配所有版本
"""
from setuptools import find_packages, setup


with open('./version.txt', 'r') as f:
    version = f.read()
    """
        读入自定义的版本号,一般都是从0.1开始,到1则为稳定,表示可能即将上线的版本
    """
setup(
    name='MyBlog',    # 模块名称
    version=version,  # 版本号
    description='This is myblog,welcome ',    # 描述
    packages=find_packages(exclude=[]),  # 获取代码里所有的package
    author='submarineas',
    author_email='1004995307@qq.com',
    license='Apache License v2', # 软件授权协议, GPLBSDAPL,可以看看这几种授权的区别,各有各的限制
    package_data={'': ['*.*']},
    url='#',
    install_requires=[str(ir.req) for ir in parse_requirements("requirements.txt", session=False)],#所需的运行环境
    zip_safe=False, # 安装后在windows上卸载不会报错
    classifiers=[
        'Programming Language :: Python',
        'Operating System :: Microsoft :: Windows',
        'Operating System :: Unix',
        'Operating System :: GNU/Linux',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
    ],
)

可以运行我们的测试用例为:

在这里插入图片描述

另外就是setup包的常用参数如下,可以根据需求选择制作一个怎样的第三方模块:

参数说明
name包名称
version包版本
author程序的作者
author_email程序的作者的邮箱地址
maintainer维护者
maintainer_email维护者的邮箱地址
url程序的官网地址
license程序的授权信息
description程序的简单描述
long_description程序的详细描述
platforms程序适用的软件平台列表
classifiers程序的所属分类列表
keywords程序的关键字列表
packages需要处理的包目录(通常为包含 init.py 的文件夹)
py_modules需要打包的 Python 单文件列表
download_url程序的下载地址
cmdclass添加自定义命令
package_data指定包内需要包含的数据文件
include_package_data自动包含包内所有受版本控制(cvs/svn/git)的数据文件
exclude_package_data当 include_package_data 为 True 时该选项用于排除部分文件
data_files打包时需要打包的数据文件,如图片,配置文件等
ext_modules指定扩展模块
scripts指定可执行脚本,安装时脚本会被安装到系统 PATH 路径下
package_dir指定哪些目录下的文件被映射到哪个源码包
requires指定依赖的其他包
provides指定可以为哪些模块提供依赖
install_requires安装时需要安装的依赖包
entry_points动态发现服务和插件
setup_requires指定运行 setup.py 文件本身所依赖的包
dependency_links指定依赖包的下载地址
extras_require当前包的高级/额外特性需要依赖的分发包
zip_safe不压缩包,而是以目录的形式安装
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

submarineas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值