將自己寫的項目(包)添加到Python系統(tǒng)環(huán)境
方法一
準備
-
Python3.x(AnacondaPython環(huán)境) - pip 包管理器(模塊)
- 第三方庫:
setuptools,wheel(包管理)(安裝Anaconda這個環(huán)境后,這些模塊或包都是自動安裝的,如果是其他Python環(huán)境,使用[python -m ]pip install 包名來安裝) - IDE: PyCharm 或
Anaconda環(huán)境中的 Spyder - 命令提示符(CMD) 或 可以使用
bash命令的工具(如Cmder)(建議以管理員身份運行)
開始動手
- 在電腦任意位置新建一個文件夾,以項目名稱命名
- 打開IDE,新建一個工程在這個位置
- 在工程下新建一個命名為
setup.py的文件,待會再編輯 - 在工程下新建一個包,以項目名稱命名(與項目同名)
如果使用PyCharm,包里面會自動生成一個名為__init__.py的文件,如果使用Spyder,則需要自己手動創(chuàng)建,__init__.py文件里面的內(nèi)容可以為空,可以添加一些東西方便以后用的時候?qū)О?/li> - 將寫好的包的
.py文件復制到包文件夾里,也可以新建.py文件手動敲代碼 - 如果還有子包,重復
4 - 現(xiàn)在回去編輯
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:數(shù)據(jù)結構Python語言描述', # 包的概括描述
home_page = '',
author = 'Mr.Ming', # 作者
author_email = 'jmy970618@foxmail.com', # 作者郵箱
license = '',
python_requires='>=3.5, <4',
packages = ['py_data_structures'] # 包名列表
)
- 打開cmd或Cmder(建議以管理員身份打開),使用
cd命令切換到setup.py的路徑,輸入命令
> python setup.py bdist_wheel
Debug并運行完成后會發(fā)現(xiàn)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兩個文件夾,說明已經(jīng)成功了,這個.whl文件和從這個網(wǎng)站上下載來安裝的.whl文件是一樣的,可以將.whl發(fā)送給小伙伴用后面的步驟安裝到python環(huán)境中,/build就是Debug是生成的文件夾
- 使用
cd命令切換到dist中,輸入命令
> [python -m ]pip install py_data_structures-0.9.0-py3-none-any.whl
注意:一定是完整文件名
安裝完成后可以打開環(huán)境中的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文件中的函數(shù)和方法,由于目前是空文件,只有一些內(nèi)置函數(shù),待以后完善

導入其中的
Tree模塊
>>> from py_data_structures import Tree
>>> dir(Tree)
展示了Tree模塊中聲明的類和函數(shù)

這種方法你學會了嗎?以后要導入之前寫好的項目就很方便了
可以從倒數(shù)第二點導包那里可以看出,包里的模塊并沒有導過來,是因為__init__.py文件是空文件,還需要日后完善
方法二
準備
-
Python3.x(AnacondaPython環(huán)境) - pip 包管理器(模塊)
- 第三方庫:
distutils(安裝Anaconda這個環(huán)境后,這些模塊或包都是自動安裝的,如果是其他Python環(huán)境,使用[python -m ]pip install 包名來安裝) - IDE: PyCharm 或
Anaconda環(huán)境中的 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:數(shù)據(jù)結構Python語言描述', # 包的概括描述
home_page = '',
author = 'Mr.Ming', # 作者
author_email = 'jmy970618@foxmail.com', # 作者郵箱
license = '',
python_requires='>=3.5, <4',
packages = ['py_ds'] # 包名列表
)
- 打開cmd或Cmder(建議以管理員身份打開),使用
cd命令切換到setup.py的路徑,輸入命令
~$ python setup.py sdist
Debug并運行完成后或發(fā)現(xiàn)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,并且是一個雙層壓縮包,可以將這個壓縮包發(fā)送給小伙伴用后面的步驟安裝到python環(huán)境中,現(xiàn)在對壓縮包進行解壓,第一次解壓產(chǎn)生一個/dist文件夾,里面有一個壓縮包py_ds-0.8.8.tar,再解壓產(chǎn)生一個/py_ds-0.8.8文件夾,組織結構如下:
--py_ds-0.8.8
|--build
|--lib
|--py_ds
|-- ...
|--py_ds
|-- ...
|--PKG-INFO
|--setup.py
打開這個setup.py文件會發(fā)現(xiàn),其實這個文件中的內(nèi)容和前面編輯的setup.py文件中的內(nèi)容一模一樣,使用cd命令切換到setup.py的路徑
~$ cd dist/dist/py_ds-0.8.8
輸入命令
~$ python setup.py install
安裝完成后可以打開環(huán)境中的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文件中的函數(shù)和方法,由于目前是空文件,只有一些內(nèi)置函數(shù),待以后完善

導入其中的
LinkList模塊
>>> from py_ds import LinkList
>>> dir(LinkList)
展示了LinkList模塊中聲明的類和函數(shù)

這種方法你學會了嗎?以后要導入之前寫好的項目就很方便了
可以從倒數(shù)第二點導包那里可以看出,包里的模塊并沒有導過來,是因為__init__.py文件是空文件,還需要日后完善
補充
- 推薦使用第一種方法,因為第一種可以直接使用命令
~$ pip uninstall 包名
進行卸載,而第二種只能進入Python的安裝環(huán)境手動刪除
- 如果不想產(chǎn)生第一種方法的
.whl安裝壓縮包或第二種方法的.tar.gz壓縮包,可以使用下面的方法安裝到庫
使用cd命令切換到編輯的setup.py文件目錄,輸入命令
~$ python setup.py install
對于第一個setup.py文件,安裝完成后,會發(fā)現(xiàn)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環(huán)境,使用前面的命令檢查
對于第二個setup.py文件,安裝完成后,會發(fā)現(xiàn)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文件