1. 程式人生 > >將自己寫的Python程式碼打包放到PyPI上

將自己寫的Python程式碼打包放到PyPI上

如果是開源的程式碼,為了能夠讓大家更方便的使用,放到PyPI上也許是個非常不錯的主意(PyPI:Python Package Index)。剛開始我以為要將程式碼打包放到PyPI上是一件非常複雜繁瑣的事情,不過看過《Dive Into Python 3》的PACKAGING PYTHON LIBRARIES介紹(CHAPTER 16),並自己動手操作了一下,發現打包釋出這個事情並沒有想象中的那麼有難度。為了方便其他朋友閱讀的方便,就嘗試寫了這個博文,來記錄下如何將自己寫的Python程式碼打包上傳到PyPI上。

在Python的世界裡,有個叫的工具模組可以幫我們輕鬆的解決這個問題,既然這樣,讓我們開始打包之旅吧。

要打包程式碼,首先你的確保你的程式碼得是個包。比如,你寫了一些功能的程式碼塊,為了方便引用,你就需要將程式碼變成一個包,下次需要使用的時候,直接引用這個包裡面的某個具體功能就好了。在Python中,要將這些程式碼變成包非常容易,你的這些功能的合集,可以用一個你覺得合適的名稱來命名,建立這個命名的資料夾,並在資料夾下建立一個__init__.py檔案,剩餘的就是將你這些程式碼放入到這個資料夾下面即可。整理成包的檔案結構大概像下面這樣:

somefunctions/
    |
    +-- __init__.py
    |
    +-- myscripts1.py
    |
    +-- mysscripts2.py
    |
    +-- mymorescripts.py
    |

somefunctions就是你包的名稱,下面my***.py的各種檔案就是你原有的各種程式碼模組。是不是很簡單就將自己的程式碼變成了包?確實很簡單,你這步就是新建一個資料夾,把檔案全放進去而已——哦,還有添加個__init__.py檔案(檔案內容可以為空).

到這裡,我們已經有Python包了,如果不傳到上的話,你都可以直接用了,最直接的方法是將這個資料夾拷到你的專案目錄下,然後在專案程式碼裡,你大概就能引用它了:

code
1 2 3 4 5 import somefunctions module 
= somefunctions.myscripts1 ### 這裡你就可以呼叫myscripts1裡面的功能了.

當然,我們的目標是到PyPI上,而不是將這個包拷來拷去的,後面安裝一下,引用起來將更加的方便。

好了,既然要放到PyPI上,那麼我們就需要在上面的基礎上,在加點料。首先,我們需要調整下檔案的目錄結構,把上面的改成下面這個樣子:

somefunctions/
    |
    +-- somefunctions/
    .       |
    .       +-- __init__.py
    .       |
    .       +-- myscripts1.py
    .       |
    .       +-- mysscripts2.py
    .       |
    .       +-- mymorescripts.py
    .       |
    .
    |

就是將原來的目錄深移一層,資料夾名稱一樣即可。這步也不難吧。好吧,然後在到第一層的目錄下建立些特殊檔案,具體你可以看看下面這個檔案結構你就明白了:

somefunctions
    |
    +-- COPYING.txt
    |
    +-- README.txt
    |
    +-- setup.py
    |
    +-- somefunctions
    .       |
    .       +-- __init__.py
    .       |
    .       +-- myscripts1.py
    .       |
    .       +-- mysscripts2.py
    .       |
    .       +-- mymorescripts.py
    .       |
    .
    |
    +-- docs/
    |

哇,咋一看,變了好多啊,其實不多,解釋下:

TIPS:

  1. COPYING.txt 就是授權檔案,裡面是你關於這個包的授權,比如:MIT license,那麼你裡面放入MIT License全文即可,當然,如果你不清楚這個,你完全可以不要這個檔案。
  2. README.txt,這個檔案想必研發都應該清楚。如果有,儘量放些東西在這裡了,後面如果可能我們會用到它的。需要注意的是,Windows的回車和Linux不一樣,所以建議用Windows的好了。另外你也可以使用README.rst這類檔案表示(reStructuredText檔案,如果不清楚可以參看我前面幾篇文章:入門Emacs快捷鍵
  3. setup.py,核心檔案,這裡面的內容馬上我們會講。
  4. docs/,這個資料夾你放你的documents吧,不過要用心寫文件真是個難事,所以這個資料夾基本是不存在的——為自己的懶惰可恥一把。
  5. 如果的包整個就一個檔案,那麼你也完全可以不用考慮再建一層目錄了,直接放到README檔案所在目錄下就可以了,雖然我不建議這麼操作。

好了,檔案都建好了,再來進化下,我們為setup.py填上內容,讓我們的setup.py真正的能用起來,注意哦,前面沒distutils什麼事情,他的作用在這裡哦。放出一個setup.py的Demo:

code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

相關推薦

自己Python程式碼打包放到PyPI

如果是開源的Python程式碼,為了能夠讓大家更方便的使用,放到PyPI上也許是個非常不錯的主意(PyPI:Python Package Index)。剛開始我以為要將程式碼打包放到PyPI上是一件非常複雜繁瑣的事情,不過看過《Dive Into Python 3》的

實戰教程:如何自己Python包釋出到PyPI

# 1. PyPi的用途 Python中我們經常會用到第三方的包,預設情況下,用到的第三方工具包基本都是從Pypi.org裡面下載。 **我們舉個栗子:** 如果你希望用Python實現一個金融量化分析工具,目前比較好用的金融資料來源是 Yahoo 和 Google。 你可能需要讀取這 2 個平臺的 API

自己python程式打包成exe(秀同學一臉吶)

Windows 10 x64 Python 2.7  IDE Pycharm 5.0.3 實際需求才是讓我學習的最大動力啊~~ 起因 今天實驗室同學看到我的乞丐版二輸入規則器,他挺感興趣的,也想要玩玩,但是他沒有裝python的環境,總不能讓他一直玩我電腦吧,所

自己python程式打包成.exe/.app(秀同學一臉吶)

Windows 10 x64 macOS Sierra 10.12.4 Python 2.7 準備好裝嗶~了麼,來吧,做個真正意義上的綠色小軟體 Win下發布應用 起因 今天實驗室同學看到我的乞丐版二輸入規則器,他挺

如何自己程式碼傳到github

接下來就是我上傳程式碼的步驟: ①首先註冊github賬號,登入,建立新倉庫 ,點選+,點選new repository 得到如下頁面,填寫倉庫名,自己隨便寫一個名字,下面的描述可寫可不寫,點選Initialize this repository  

python如何自己的代碼打包供他人使用

format 下載安裝 -- div odin 簡單 () license find 背景: 利用setuptools來實現,所以先安裝setuptools,其實Python2.7.9及之後的版本都自帶安裝setuptools了,無需在另外安裝 如果沒有安裝setuptoo

Python:如何封裝打包自己程式碼,被python import

個人淺解。。。。有錯請指出 1.新建一個資料夾example,裡面放入要打包的.py檔案,以及必需的_init_.py. 程式碼如下: # -*- coding: utf-8 -*- """ Created on Thu Nov 1 17:04:02 2018 @author:

Python自己的模組進行打包

將專案打包成模組的想法來自於flask文件教程,這不是在PyCon上和阿明合了照嘛,這不得多看看人家的東西。有興趣的可以看看文件的專案可安裝化部分,作者將flask專案打包成一個包,使其可以再任何地方匯入專案並允許,也可以通過pip install youproject.whl的方式來安裝專案並安裝相關的依

如何自己的一段C++程式碼封裝成.so庫以供其他人呼叫

1.通過自己寫的canbus函式程式碼,先生成一個libcanbus.so連結庫 canbus.cpp程式碼如下: 編譯指令如下: $ g++ -Wall -g -fPIC -c canbus.cpp -o canbus.o $ g++ -

Python程式碼釋出到PyPi,使他人可用pip安裝

專案的大致目錄結構,其中bword/bword.py 是你的程式碼檔案,__init__.py檔案宣告此目錄為一個模組,你可以完全不在裡面寫任何內容,也可以寫一些程式碼。如果你還不明白你可以參照:https://github.com/ZhangHang-z/bword

使用 Setup Python 程式碼 打包

1. 我的原始碼結構如下: pack |---src   | - common ---http         ---user   | - lib   | - factory.py 2. 實現setup.py #!/usr/bin/env python3 # -*- coding: utf-8 -*-

小遊戲,對於剛剛學完python基礎的非常合適,下一個是自己程式碼

************************歡迎來到遊戲世界*************************                        1.註冊                        2.登入                        3

cythonpython包,帶so/帶ddl的包打包pypi

由於python版本的混亂- - 打包上傳第三方包的教程也是坑的很 這裡踩坑一下 cython 的程式 編譯成so檔案 f

自己的腳本添加至開機自啟動服務和chkconfig的原理

添加開機自啟動服務 Linux運維將自己寫的腳本添加至開機自啟動服務和chkconfig的原理 創建腳本測試 [root@anuo ~]# vim anuo.sh --創建個腳本 # !/bin/bash # chkconfig: 35 53 88 --指定3和5級別啟動 53的啟動的順序 88

自己的HDL代碼封裝成帶AXI總線的IP

chang center 曾經 .cn 轉載 tool tps 事情 總線 將自己寫的HDL代碼封裝成帶AXI總線的IP 1.Tools->create and package IP 2.create AXI4總線的IP 3.新建block design

如何自己的verilog模塊封裝成IP核

目錄 第二篇 hierarchy 布局 options ssi campaign mac sed 如何將自己寫的verilog模塊封裝成IP核 (2014-11-21 14:53:29) 轉載▼ 標簽: 財經 分類: 我的東東 ========

Visual Studio Code Python 程式碼

  最近在部落格園新聞裡面看到微軟釋出的Visual Studio Code 挺好用的,現在在學習Python,檢視官網釋出的VSCode 是支援Python程式碼,自己試著安裝用一下,下面是我的安裝以及配置Python的過程: 安裝VSCode  下載連結:https://visualstud

Tensorflow 反捲積(DeConv)實現原理+ 手python程式碼實現反捲積(DeConv)

1、反捲積原理 反捲積原理不太好用文字描述,這裡直接以一個簡單例子描述反捲積。 假設輸入如下: [[1,0,1], [0,2,1], [1,1,0]]  反捲積卷積核如下: [[ 1, 0, 1], [-1, 1, 0], [ 0,-1, 0]]  

如何再window下統計自己程式碼

git log --since="2018-05-01" --before="2018-11-5" --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2

Python程式碼釋出到PyPi

Python程式碼釋出到PyPi 參考部落格 提一個坑 參考部落格 參考部落格 提一個坑 問題描述:當我完成上傳後,確實可以pip,但是原始碼檔案site-packages中只有.dist,info資料夾,沒有原始檔。喵喵喵??? 解