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_installerror: No urls, filenames, or requirements specified (see --help)
所以这里的命令是这样的:
>>>easy_install virtualenvSearching 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\ScriptsUsing 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, setupwith 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=[]), # 获取代码里所有的packageauthor='submarineas',author_email='1004995307@qq.com',license='Apache License v2', # 软件授权协议, GPL、BSD、APL,可以看看这几种授权的区别,各有各的限制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 | 不压缩包,而是以目录的形式安装 |
python模块安装方式和自定义模块安装相关推荐
- KALI Linux三种安装方式之U盘安装
KALI Linux三种安装方式详解 KALI Linux三种安装方式之U盘安装 仅为个人经验交流,仅供参考 (对于KALI的介绍就不用多说了,既然选择安装说明有了充分的了解了) U盘安装顾名思义就是 ...
- python 自定义模块怎么用_python自定义模块使用说明
保存一个hello.py文件在F:/data/python目录下hello.py >>> def hello(x): print x 目录 导入 >>> impor ...
- python自定义模块的使用_python自定义模块使用说明
保存一个hello.py文件在F:/data/python目录下hello.py >>> def hello(x): print x 目录 导入 >>> impor ...
- 【python VS Code】调用自定义模块 ModuleNotFoundError: No module named XXX
写 python 很久了,今天本没打算熬夜,但却被这么简单的问题困到了 零点半 - 有点像脑筋急转弯. 在 VS Code 等轻量文本编辑器/项目管理器中,我不希望像 pycharm 一样由配置文件自 ...
- Python入门--模块,from,import,自定义模块
#模块 #函数与模块的关系-->一个模块中可以包含N多个函数 #在Python中一个扩展名为.py的文件就是模块 #使用模块的好处 #1.方便其他程序和脚本的导入并使用 #2.避免函数名和变量名 ...
- php自定义模块,简单介绍OpenCart自定义模块
OpenCart模块可以自定义模块显示位置.排序.是否开启等功能,用起来十分方便. OpenCart用到的模块管理非常多,首页幻灯.导航.最新商品.特价商品.热卖商品等. 如何自定义一个模块?其实也挺 ...
- homeassistant几种安装方式对比,树莓派4docker安装记录
测试了几种方式,最后用了docker方式在树莓派上安装,然后没有安装supervisor,具体原因后面详细说明. 第一种(放弃了),直接在树莓派的官方系统上用命令行安装,把python各种环境搞好,最 ...
- python怎么导入时间-Python,模块导入方式和time模块的使用
一.模块的导入 1. 模块导入会将要导入的文件执行一遍 2. 导入模块的名称就是我们定义的脚本或包的名称 3. 我们导入模块的过程总结就是:在指定的范围内搜索指定名称对 python 脚本或者包,将其 ...
- mac 新版brew php安装方式接php扩展安装
事发起因,之前笔记本装了好几个版本,因为后来升级系统,结果把系统的php跟自己装的弄混了,乱的很,所以想重装一下,结果发现brew人家迁移库了舍弃掉了php旧的版本,通过一些帮助做出如下改动. 1.使 ...
最新文章
- [Python]Python操作/管理Mysql学习(一)
- 《机器学习》课程视频(数据处理、模型构建与优化)
- 长期股权投资和私募股权投资的区别
- IE6-IE11兼容性问题列表及解决办法
- PHP $_SERVER 变量
- PAT乙级(1004 成绩排名)
- Hash Collision DoS 攻击
- 中兴天机Axon 10 Pro安兔兔跑分曝光:刷新记录!
- 生信c语言面试题,c语言入门 java
- 图形界面下,如何查看LINUX隐藏的文件、目录
- Java依赖包下载地址
- seaborn系列 (10) | 盒形图boxplot()
- 大二web期末大作业——动漫海贼王(可以很好的应付老师的作业)
- 阿里笔试模拟题-74.钱庄
- c# 弹出虚拟键盘关闭虚拟键盘(适用win10、win7)学习记录(转载)
- 高德地图 根据名称搜索坐标,坐标点呈现列表展示
- 一嗨租车宣布获老虎基金等1.34亿美元投资
- 议程公布!2021年MongoDB中文社区杭州大会
- 办公室的好帮手!多能办公记事本 V3.7 (20150607更新)
- 使用 Vanilla JavaScript 构建自定义 SPA 路由器