将自己写的项目(包)添加到Python系统环境

将自己写的项目(包)添加到Python系统环境

方法一

准备
  1. Python3.x(AnacondaPython环境)
  2. pip 包管理器(模块)
  3. 第三方库: setuptools, wheel(包管理)(安装Anaconda这个环境后,这些模块或包都是自动安装的,如果是其他Python环境,使用[python -m ]pip install 包名来安装)
  4. IDE: PyCharmAnaconda 环境中的 Spyder
  5. 命令提示符(CMD) 或 可以使用bash命令的工具(如Cmder)(建议以管理员身份运行)
开始动手
  1. 在电脑任意位置新建一个文件夹,以项目名称命名
  2. 打开IDE,新建一个工程在这个位置
  3. 在工程下新建一个命名为setup.py的文件,待会再编辑
  4. 在工程下新建一个包,以项目名称命名(与项目同名)
    如果使用PyCharm,包里面会自动生成一个名为__init__.py的文件,如果使用Spyder,则需要自己手动创建,__init__.py文件里面的内容可以为空,可以添加一些东西方便以后用的时候导包
  5. 将写好的包的.py文件复制到包文件夹里,也可以新建.py文件手动敲代码
  6. 如果还有子包,重复4
  7. 现在回去编辑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']           # 包名列表
)
  1. 打开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是生成的文件夹

  1. 使用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
|-- ...

说明安装成功,也可使用下面的方法验证

  1. 在cmd或Cmder输入命令
> pip list

会看到


pip list命令查看环境中安装的包及其版本号

输入命令

> pip show py_data_structures

会看到


setup.py文件中编辑的部分信息

输入命令

> python

进入python shell命令脚本

python环境信息

输入python导包的语句测试

>>> import py_data_structures as pyds
>>> dir(pyds)

展示了包中的信息,其实是__init__.py文件中的函数和方法,由于目前是空文件,只有一些内置函数,待以后完善

__init__.py文件中的内置函数

导入其中的Tree模块

>>> from py_data_structures import Tree
>>> dir(Tree)

展示了Tree模块中声明的类和函数

Tree中声明的类和函数

这种方法你学会了吗?以后要导入之前写好的项目就很方便了
可以从倒数第二点导包那里可以看出,包里的模块并没有导过来,是因为__init__.py文件是空文件,还需要日后完善

方法二

准备
  1. Python3.x(AnacondaPython环境)
  2. pip 包管理器(模块)
  3. 第三方库: distutils(安装Anaconda这个环境后,这些模块或包都是自动安装的,如果是其他Python环境,使用[python -m ]pip install 包名来安装)
  4. IDE: PyCharmAnaconda 环境中的 Spyder
  5. 命令提示符(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']           # 包名列表
)
  1. 打开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
|-- ...

说明安装成功,也可使用下面的方法验证

  1. 在cmd或Cmder输入命令
~$ pip list

会看到


pip list命令查看环境中安装的包及其版本号

输入命令

~$ pip show py_ds

会看到


setup.py文件中编辑的部分信息

输入命令

~$ python

进入python shell命令脚本

python环境信息

输入python导包的语句测试

>>> import py_ds
>>> dir(py_ds)

展示了包中的信息,其实是__init__.py文件中的函数和方法,由于目前是空文件,只有一些内置函数,待以后完善

__init__.py文件中的内置函数

导入其中的LinkList模块

>>> from py_ds import LinkList
>>> dir(LinkList)

展示了LinkList模块中声明的类和函数

LinkList中声明的类和函数

这种方法你学会了吗?以后要导入之前写好的项目就很方便了
可以从倒数第二点导包那里可以看出,包里的模块并没有导过来,是因为__init__.py文件是空文件,还需要日后完善

补充
  1. 推荐使用第一种方法,因为第一种可以直接使用命令
~$ pip uninstall 包名

进行卸载,而第二种只能进入Python的安装环境手动删除

  1. 如果不想产生第一种方法的.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文件

你可能感兴趣的:(将自己写的项目(包)添加到Python系统环境)