將自己寫的項目(包)添加到Python系統(tǒng)環(huán)境

將自己寫的項目(包)添加到Python系統(tǒng)環(huán)境

方法一

準備
  1. Python3.x(AnacondaPython環(huán)境)
  2. pip 包管理器(模塊)
  3. 第三方庫: setuptools, wheel(包管理)(安裝Anaconda這個環(huán)境后,這些模塊或包都是自動安裝的,如果是其他Python環(huán)境,使用[python -m ]pip install 包名來安裝)
  4. IDE: PyCharmAnaconda 環(huán)境中的 Spyder
  5. 命令提示符(CMD) 或 可以使用bash命令的工具(如Cmder)(建議以管理員身份運行)
開始動手
  1. 在電腦任意位置新建一個文件夾,以項目名稱命名
  2. 打開IDE,新建一個工程在這個位置
  3. 在工程下新建一個命名為setup.py的文件,待會再編輯
  4. 在工程下新建一個包,以項目名稱命名(與項目同名)
    如果使用PyCharm,包里面會自動生成一個名為__init__.py的文件,如果使用Spyder,則需要自己手動創(chuàng)建,__init__.py文件里面的內(nèi)容可以為空,可以添加一些東西方便以后用的時候?qū)О?/li>
  5. 將寫好的包的.py文件復制到包文件夾里,也可以新建.py文件手動敲代碼
  6. 如果還有子包,重復4
  7. 現(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']           # 包名列表
)
  1. 打開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是生成的文件夾

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

說明安裝成功,也可使用下面的方法驗證

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

會看到


pip list命令查看環(huán)境中安裝的包及其版本號

輸入命令

> pip show py_data_structures

會看到


setup.py文件中編輯的部分信息

輸入命令

> python

進入python shell命令腳本

python環(huán)境信息

輸入python導包的語句測試

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

展示了包中的信息,其實是__init__.py文件中的函數(shù)和方法,由于目前是空文件,只有一些內(nèi)置函數(shù),待以后完善

__init__.py文件中的內(nèi)置函數(shù)

導入其中的Tree模塊

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

展示了Tree模塊中聲明的類和函數(shù)

Tree中聲明的類和函數(shù)

這種方法你學會了嗎?以后要導入之前寫好的項目就很方便了
可以從倒數(shù)第二點導包那里可以看出,包里的模塊并沒有導過來,是因為__init__.py文件是空文件,還需要日后完善

方法二

準備
  1. Python3.x(AnacondaPython環(huán)境)
  2. pip 包管理器(模塊)
  3. 第三方庫: distutils(安裝Anaconda這個環(huán)境后,這些模塊或包都是自動安裝的,如果是其他Python環(huán)境,使用[python -m ]pip install 包名來安裝)
  4. IDE: PyCharmAnaconda 環(huán)境中的 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:數(shù)據(jù)結構Python語言描述',    # 包的概括描述
    home_page = '',
    author = 'Mr.Ming',             # 作者
    author_email = 'jmy970618@foxmail.com',     # 作者郵箱
    license = '',
    python_requires='>=3.5, <4',
    packages = ['py_ds']           # 包名列表
)
  1. 打開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
|-- ...

說明安裝成功,也可使用下面的方法驗證

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

會看到


pip list命令查看環(huán)境中安裝的包及其版本號

輸入命令

~$ pip show py_ds

會看到


setup.py文件中編輯的部分信息

輸入命令

~$ python

進入python shell命令腳本

python環(huán)境信息

輸入python導包的語句測試

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

展示了包中的信息,其實是__init__.py文件中的函數(shù)和方法,由于目前是空文件,只有一些內(nèi)置函數(shù),待以后完善

__init__.py文件中的內(nèi)置函數(shù)

導入其中的LinkList模塊

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

展示了LinkList模塊中聲明的類和函數(shù)

LinkList中聲明的類和函數(shù)

這種方法你學會了嗎?以后要導入之前寫好的項目就很方便了
可以從倒數(shù)第二點導包那里可以看出,包里的模塊并沒有導過來,是因為__init__.py文件是空文件,還需要日后完善

補充
  1. 推薦使用第一種方法,因為第一種可以直接使用命令
~$ pip uninstall 包名

進行卸載,而第二種只能進入Python的安裝環(huán)境手動刪除

  1. 如果不想產(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文件

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容