将自己写的项目(包)添加到Python系统环境
方法一
准备
-
Python3.x
(AnacondaPython环境) - pip 包管理器(模块)
- 第三方库:
setuptools
,wheel
(包管理)(安装Anaconda
这个环境后,这些模块或包都是自动安装的,如果是其他Python
环境,使用[python -m ]pip install 包名
来安装) - IDE: PyCharm 或
Anaconda
环境中的 Spyder - 命令提示符(CMD) 或 可以使用
bash
命令的工具(如Cmder)(建议以管理员身份运行)
开始动手
- 在电脑任意位置新建一个文件夹,以项目名称命名
- 打开IDE,新建一个工程在这个位置
- 在工程下新建一个命名为
setup.py
的文件,待会再编辑 - 在工程下新建一个包,以项目名称命名(与项目同名)
如果使用PyCharm,包里面会自动生成一个名为__init__.py
的文件,如果使用Spyder,则需要自己手动创建,__init__.py
文件里面的内容可以为空,可以添加一些东西方便以后用的时候导包 - 将写好的包的
.py
文件复制到包文件夹里,也可以新建.py
文件手动敲代码 - 如果还有子包,重复
4
- 现在回去编辑
setup.py
文件,这里以py_data_structures
包做演示,按照下面格式编写
#setup.py
# -*- coding: utf-8 -*-
from setuptools import setup
setup(
name = 'py_data_structures', # 项目名称(包名)
version = '0.9.0', # 版本号
description = 'en: Data structure with Python;\n\
zh_CN:数据结构Python语言描述', # 包的概括描述
home_page = '',
author = 'Mr.Ming', # 作者
author_email = '[email protected]', # 作者邮箱
license = '',
python_requires='>=3.5, <4',
packages = ['py_data_structures'] # 包名列表
)
- 打开cmd或Cmder(建议以管理员身份打开),使用
cd
命令切换到setup.py
的路径,输入命令
> python setup.py bdist_wheel
Debug并运行完成后会发现setup.py
的目录中多了三个文件夹,组织结构如下:
--py_data_structeures
|--.idea
|--build
|--bdist.win-amd64
|--lib
|--py_data_structures
|-- ...
|--dist
|--py_data_structures-0.9.0-py3-none-any.whl
|--py_data_structures
|-- ...
|--py_data_structures.egg-info
|-- ...
|--setup.py
要使用的就是dist下面的py_data_structures-0.9.0-py3-none-any.whl
文件,它其实是一个压缩包,用解压缩软件解压后会得到/py_data_structures
和/py_data_structures-0.9.0.dist-info
两个文件夹,说明已经成功了,这个.whl
文件和从这个网站上下载来安装的.whl
文件是一样的,可以将.whl
发送给小伙伴用后面的步骤安装到python
环境中,/build
就是Debug是生成的文件夹
- 使用
cd
命令切换到dist
中,输入命令
> [python -m ]pip install py_data_structures-0.9.0-py3-none-any.whl
注意:一定是完整文件名
安装完成后可以打开环境中的Python安装路径\Lib\site-packages
路径,会看到下面这两个文件夹:
--site-packages
|-- ...
|--py_data_structures
|--py_data_structures-0.9.0.dist-info
|-- ...
说明安装成功,也可使用下面的方法验证
- 在cmd或Cmder输入命令
> pip list
会看到
输入命令
> pip show py_data_structures
会看到
输入命令
> python
进入python
shell
命令脚本
输入
python
导包的语句测试
>>> import py_data_structures as pyds
>>> dir(pyds)
展示了包中的信息,其实是__init__.py
文件中的函数和方法,由于目前是空文件,只有一些内置函数,待以后完善
导入其中的
Tree
模块
>>> from py_data_structures import Tree
>>> dir(Tree)
展示了Tree
模块中声明的类和函数
这种方法你学会了吗?以后要导入之前写好的项目就很方便了
可以从倒数第二点导包那里可以看出,包里的模块并没有导过来,是因为__init__.py
文件是空文件,还需要日后完善
方法二
准备
-
Python3.x
(AnacondaPython环境) - pip 包管理器(模块)
- 第三方库:
distutils
(安装Anaconda
这个环境后,这些模块或包都是自动安装的,如果是其他Python
环境,使用[python -m ]pip install 包名
来安装) - IDE: PyCharm 或
Anaconda
环境中的 Spyder - 命令提示符(CMD) 或 可以使用
bash
命令的工具(如Cmder)(建议以管理员身份运行)
动手
1-6和方法一相同,下面开始编辑setup.py
文件,以py_da
包做演示,按照下面格式编辑
#setup.py
# -*- coding: utf-8 -*-
from distutils.core import setup
setup(
name = 'py_ds',
version = '0.8.8',
description = 'en: Data structure with Python;\n\
zh_CN:数据结构Python语言描述', # 包的概括描述
home_page = '',
author = 'Mr.Ming', # 作者
author_email = '[email protected]', # 作者邮箱
license = '',
python_requires='>=3.5, <4',
packages = ['py_ds'] # 包名列表
)
- 打开cmd或Cmder(建议以管理员身份打开),使用
cd
命令切换到setup.py
的路径,输入命令
~$ python setup.py sdist
Debug并运行完成后或发现setup.py
的目录多了一个文件夹和一个文件,组织结构如下:
--py_ds
|--.idea
|--dist
|--py_ds-0.8.8.tar.gz
|--py_ds
|-- ...
|--MANIFEST
|--setup.py
/dist
文件夹下面是一个压缩包py_ds-0.8.8.tar.gz
,并且是一个双层压缩包,可以将这个压缩包发送给小伙伴用后面的步骤安装到python
环境中,现在对压缩包进行解压,第一次解压产生一个/dist
文件夹,里面有一个压缩包py_ds-0.8.8.tar
,再解压产生一个/py_ds-0.8.8
文件夹,组织结构如下:
--py_ds-0.8.8
|--build
|--lib
|--py_ds
|-- ...
|--py_ds
|-- ...
|--PKG-INFO
|--setup.py
打开这个setup.py
文件会发现,其实这个文件中的内容和前面编辑的setup.py
文件中的内容一模一样,使用cd
命令切换到setup.py
的路径
~$ cd dist/dist/py_ds-0.8.8
输入命令
~$ python setup.py install
安装完成后可以打开环境中的Python安装路径\Lib\site-packages
路径,会看到下面这个文件夹和这个文件:
--site-packages
|-- ...
|--py_ds
|-- ...
|--py_ds-0.8.8-py3.6.egg-info
|-- ...
说明安装成功,也可使用下面的方法验证
- 在cmd或Cmder输入命令
~$ pip list
会看到
输入命令
~$ pip show py_ds
会看到
输入命令
~$ python
进入python
shell
命令脚本
输入
python
导包的语句测试
>>> import py_ds
>>> dir(py_ds)
展示了包中的信息,其实是__init__.py
文件中的函数和方法,由于目前是空文件,只有一些内置函数,待以后完善
导入其中的
LinkList
模块
>>> from py_ds import LinkList
>>> dir(LinkList)
展示了LinkList
模块中声明的类和函数
这种方法你学会了吗?以后要导入之前写好的项目就很方便了
可以从倒数第二点导包那里可以看出,包里的模块并没有导过来,是因为__init__.py
文件是空文件,还需要日后完善
补充
- 推荐使用第一种方法,因为第一种可以直接使用命令
~$ pip uninstall 包名
进行卸载,而第二种只能进入Python
的安装环境手动删除
- 如果不想产生第一种方法的
.whl
安装压缩包或第二种方法的.tar.gz
压缩包,可以使用下面的方法安装到库
使用cd
命令切换到编辑的setup.py
文件目录,输入命令
~$ python setup.py install
对于第一个setup.py
文件,安装完成后,会发现setup.py
的目录中多了三个文件夹,组织结构如下:
--py_data_structeures
|--.idea
|--build
|--bdist.win-amd64
|--lib
|--py_data_structures
|-- ...
|--dist
|--py_data_structures-0.9.0-py3.6.egg
|--py_data_structures
|-- ...
|--py_data_structures.egg-info
|-- ...
|--setup.py
将/py_data_structures
和/py_data_py_data_structures.egg-info
这两个文件夹复制到Python
环境,使用前面的命令检查
对于第二个setup.py
文件,安装完成后,会发现setup.py
的目录中多了一个文件夹,组织结构如下:
--py_data_structeures
|--.idea
|--build
|--lib
|--py_ds
|-- ...
|--py_ds
|--setup.py
会Python
看到下面这个文件夹和这个文件:
--site-packages
|-- ...
|--py_ds
|-- ...
|--py_ds-0.8.8-py3.6.egg-info
|-- ...
使用前面的命令检查
建议使用第一种方法,并生成
.whl
文件